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

进入银联支付的开发者平台: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(" 你已取消了本次订单的支付! ");

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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值