安卓第三方支付之银联支付

本文详细介绍了如何在Android应用中集成银联支付SDK,包括从开发者平台获取SDK、支付流程解析、工程配置及关键代码示例等内容。

进入银联支付的开发者平台:https://open.unionpay.com/ajweb/help/file ,下载银联最新sdk



先看下支付流程:


流程图说明:
(1)用户在客户端中点击购买商品,客户端发起订单生成请求到商户后台;
(2)商户后台收到订单生成请求后,按照《手机控件支付产品接口规范》组织并推送订单信息至银联后台;
(3)银联后台接收订单信息并检查通过后,生成对应交易流水号(即TN),并回复交易流水号至商户后台(应答要素:交易流水号等);
(4)商户后台接收到交易流水号,将交易流水号返回给客户端;
(5)客户端通过交易流水号(TN)调用支付控件;
(6)用户在支付控件中输入相关支付信息后,由支付控件向银联后台发起支付请求;
(7)支付成功后,银联后台将支付结果通知给商户后台;
(8)银联将支付结果通知支付控件;
(9)支付控件显示支付结果并将支付结果返回给客户端;

可以看到银联的Demo是es的,那在as里面如何导包呢?
es中:


as中:


接下来,在工程的AndroidManifest.xml文件中注册支付插件使用的Activity和权限,接口文档中有,就不贴出来了。

post请求到流水账号,再调用支付控件,并处理支付结果

// “00” – 银联正式环境
// “01” – 银联测试环境,该环境中不发生真实交易
String serverMode = "01";
UPPayAssistEx.startPay (activity, null, null, tn, serverMode);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data == null) {
            return;
        }

        String str = data.getExtras().getString("pay_result");
        if (str.equalsIgnoreCase(R_SUCCESS)) {
            // 支付成功后,extra中如果存在result_data,取出校验
// result_data结构见c)result_data参数说明
            if (data.hasExtra("result_data")) {
                String sign = data.getExtras().getString("result_data");
// 验签证书同后台验签证书
// 此处的verify,商户需送去商户后台做验签 
                if (verify(sign)) {
                    //验证通过后,显示支付结果
                    showResultDialog(" 支付成功! ");
                } else {
// 验证不通过后的处理
// 建议通过商户后台查询支付结果
                }
            } else {
// 未收到签名信息
// 建议通过商户后台查询支付结果
            }
        } else if (str.equalsIgnoreCase(R_FAIL)) {
            showResultDialog(" 支付失败! ");
        } else if (str.equalsIgnoreCase(R_CANCEL)) {
            showResultDialog(" 你已取消了本次订单的支付! ");

        }
    }
银联支付还提供测试账号,相比支付宝,微信支付简单些。


评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值