银联简易支付

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")是这个的时候 需要调用后台查询支付是否成功的接口,成功了以后再做相应的操作。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容