安卓开发 实现银联支付

官方地址:
https://open.unionpay.com/ajweb/help/file/techFile?productId=3
https://open.unionpay.com/ajweb/help/file/techFile

图片有点大~~

下载地址
下载好demo

下载下来
如果是eclipse 开始的就相当省事了,copy进去就行。

studio需要注意 三点

图片都是在Project截取的。这里写图片描述

一. data.bin 文件要放在 assets下面
这里写图片描述
二. so文件 发在 main下的jniLibs文件夹下。不要放lib了奥。
这里写图片描述

三. 权限一定要带上

   <uses-permission  
   android:name="android.permission.INTERNET" />
   <uses-permission
   android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission
   android:name="android.permission.CHANGE_NETWORK_STATE" />
   <uses-permission
   android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.READ_PHONE_STATE"
   /> <uses-permission
   android:name="android.permission.ACCESS_WIFI_STATE" /> 
   <!— 如果选择智能卡方式(即sdkPro)集成,需要额外定义以下权限 --> 
   <uses-permission
   android:name="android.permission.RECORD_AUDIO" /> 
   <uses-permission
   android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
   <uses-permission
   android:name="org.simalliance.openmobileapi.SMARTCARD" />

代码~

 //TODO 银联支付

    /*****************************************************************
     * mMode参数解释: "00" - 启动银联正式环境 "01" - 连接银联测试环境
     *****************************************************************/
    private final String mMode = "01";
    /*************************************************
                     * 步骤2:通过银联工具类启动支付插件
                     ************************************************/
        UPPayAssistEx.startPayByJAR(MoneyRechargeActivity.this,PayActivity.class, null, null,
                "填写tn 就是流水号", mMode);

----------------------------------------------------------------------------------------
回调
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        /*************************************************
         * 步骤3:处理银联手机支付控件返回的支付结果
         ************************************************/
        if (data == null) {
            return;
        }
        String msg = "";
        /*
         * 支付控件返回字符串:success、fail、cancel 分别代表支付成功,支付失败,支付取消
         */
        String str = data.getExtras().getString("pay_result");
        if (str.equalsIgnoreCase("success")) {
            // 支付成功后,extra中如果存在result_data,取出校验
            // result_data结构见c)result_data参数说明
            if (data.hasExtra("result_data")) {
                String result = data.getExtras().getString("result_data");
//                try {
//                    JSONObject resultJson = new JSONObject(result);
//                    String sign = resultJson.getString("sign");
//                    String dataOrg = resultJson.getString("data");
//                    // 验签证书同后台验签证书
//                    // 此处的verify,商户需送去商户后台做验签
//                    boolean ret = verify(dataOrg, sign, mMode);
//                    if (ret) {
//                        // 验证通过后,显示支付结果
//                        msg = "支付成功!";
//                    } else {
//                        // 验证不通过后的处理
//                        // 建议通过商户后台查询支付结果
 //               msg = "支付失败!";
//                    }
//                } catch (JSONException e) {
//                }
//            } else {
                // 未收到签名信息
                // 建议通过商户后台查询支付结果
 //               msg = "支付成功!";
//            }
             msg = "支付成功!";
        } else if (str.equalsIgnoreCase("fail")) {
            msg = "支付失败!";
        } else if (str.equalsIgnoreCase("cancel")) {
            msg = "用户取消了支付";
        }

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("支付结果通知");
        builder.setMessage(msg);
        builder.setInverseBackgroundForced(true);
        // builder.setCustomTitle();
        builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });
        builder.create().show();
    }

怎么样简单吧.希望可以帮到你。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值