美文网首页
银联简易支付

银联简易支付

作者: 一分之二TWQQEQRcium | 来源:发表于2019-03-27 11:15 被阅读0次

1、首先从https://open.unionpay.com/tjweb/acproduct/list?apiservId=450下载android版

2、从下载中的:app开发包-->控件开发包-->upmp_android-->sdkPro-->jar下面的so放入项目中相对应的文件夹

3、将UPPayPluginExPro.jar、UPPayAssistEx.jar放入libs-->选中包-->add as library

4、将data.bin放入项目下的assest 文件夹

如果没有的话新建一个文件夹就可以,目录结构如图所示

5、import com.unionpay.UPPayAssistEx;

      String serverMode ="01";

       UPPayAssistEx.startPay(me,null,null, data.get("pay_string"), serverMode);

调用的代码如图所示,01表示测试环境,00表示正式环境  这个时候就可以唤起支付了

6、回调的代码

protected void onActivityResult(int requestCode,int resultCode,Intent data) {

       if (data ==null) {

     return;

     }

String msg ="";

String str = data.getExtras().getString("pay_result");

if (str.equalsIgnoreCase("success")) {

// 如果想对结果数据验签,可使用下面这段代码,

// 但建议不验签,直接去商户后台查询交易结果

// result_data结构见c)result_data参数说明

        if (data.hasExtra("result_data")) {

String sign = data.getExtras().getString("result_data");

// 此处的verify建议送去商户后台做验签

// 如要放在手机端验,则代码必须支持更新证书

            String typeS ="";

if (pay_type.equals("1")) {

typeS ="1";

}else {

typeS ="2";

}

HttpRequest.POST(me,findPayResult,new Parameter().add("order_num",order_num)

.add("type", typeS),new ResponseListener() {

@Override

                public void onResponse(String s, Exception e) {

WaitDialog.dismiss();

if (e ==null) {

Map map = JSONUtils.parseKeyAndValueToMap(s);

if (map.get("code") ==null) {

return;

}

if (map.get("code").equals("1")) {

toast("支付成功");

setResponse(new JumpParameter().put("chenggong","1"));

finish();

}else {

Log.e("error", map.get("code") + map.get("message"));

}

}else {

}

}

});

}

// 结果result_data为成功时,去商户后台查询一下再展示成功

    }else if (str.equalsIgnoreCase("fail")) {

toast(" 支付失败! ");

}else if (str.equalsIgnoreCase("cancel")) {

toast(" 你已取消了本次订单的支付! ");

}

}

当返回的结果data.hasExtra("result_data")是这个的时候 需要调用后台查询支付是否成功的接口,成功了以后再做相应的操作。

相关文章

网友评论

      本文标题:银联简易支付

      本文链接:https://www.haomeiwen.com/subject/puytyftx.html