Android银联支付Sdk_银联支付接口开发集成Demo下载
2016-04-01 09:39:03  By: dwtedx

最近工都名车的项目需要使用银联支付、没办法去研究了一下、觉得可以记录一下、希望有需求的哥们可以直接使用、银联手机支付控件、主要为合作商户的手机客户端提供安全、便捷的支付服务、用户通过在支付控件中输入银行卡卡号、手机号、密码借记卡和预付卡、或者CVN2、有效期信用卡、验证码等要素完成支付

android银联支付开发


支付流程说明

1、用户在客户端中点击购买商品、客户端发起订单生成请求到商户后台

2、商户后台收到订单生成请求后、按照《手机控件支付产品接口规范》组织并推送订单信息至银联后台

3、银联后台接收订单信息并检查通过后、生成对应交易流水号即TN、并回复交易流水号至商户后台应答要素:交易流水号等

4、商户后台接收到交易流水号、将交易流水号返回给客户端

5、客户端通过交易流水号TN、调用支付控件

6、用户在支付控件中输入相关支付信息后、由支付控件向银联后台发起支付请求

7、支付成功后、银联后台将支付结果通知给商户后台

8、银联将支付结果通知支付控件

9、支付控件显示支付结果并将支付结果返回给客户端


发起支付并检测支付控件

@Override
public void doStartUnionPayPlugin(Activity activity, String tn, String mode) {
    // mMode参数解释:
    // 0 - 启动银联正式环境
    // 1 - 连接银联测试环境
    int ret = UPPayAssistEx.startPay(this, null, null, tn, mode);
    if (ret == PLUGIN_NEED_UPGRADE || ret == PLUGIN_NOT_INSTALLED) {
        // 需要重新安装控件
        Log.e(LOG_TAG, " plugin not found or need upgrade!!!");

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("提示");
        builder.setMessage("完成购买需要安装银联支付控件,是否安装?");

        builder.setNegativeButton("确定",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        UPPayAssistEx.installUPPayPlugin(APKActivity.this);
                        dialog.dismiss();
                    }
                });

        builder.setPositiveButton("取消",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
        builder.create().show();

    }
    Log.e(LOG_TAG, ""   ret);
}


确认支付结果

@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 = "支付成功!";
        }
    } else if (str.equalsIgnoreCase("fail")) {
        msg = "支付失败!";
    } else if (str.equalsIgnoreCase("cancel")) {
        msg = "用户取消了支付";
    }

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


银联支付是需要后台下单获取流水号的、所以是需要后台的代码、这里也分享一下、后台的代码和开发文档

后台代码及开发文档下载地址:点击下载银联支付后台开发包源码 密码: kvcy

银联支付app开发包源代码下载链接: 点击下载银联支付app开发包源码 密码: 9ptx

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+