三分钟集成连连支付方法(以认证支付为例)

来源:互联网 发布:域名出售 meiju 美剧 编辑:程序博客网 时间:2024/05/17 06:29

以前使用的都是直接对接的银联支付,最近项目开始使用连连支付,由于连连的开发文档稍微简陋一点,所以在这里跟大家分享一下,这里以认证支付为例:

  • 首先可以下载一下连连的官方demo,拿到我们需要的资源,也可以跑一下看看效果,连连的demo可能下载下来直接导入as跑不起来,我在这里重新写了一下供大家使用一下:

    链接地址:http://download.csdn.net/download/huangxiaoguo1/10046755

  • 导入demo中的aar文件

在项目的build.gradle中: flatDir {            dirs 'libs'        }  如下图:

这里写图片描述

modulebuild.gradle中:   compile(name:'securePay', ext:'aar')如下图:

这里写图片描述

  • 把项目中的除了standActicity外其他的类考入你的项目中,当然看你的需要,需要哪些类考哪些类就好了,例如我这里需要的数据都是后台返回过来的(包括签名),所以我只需要的的类如下图:

这里写图片描述

  • 开始调用:
 private void unionPay(String bindCardId) {        HashMap<String, Object> map = new HashMap<>();        map.put("bindCardId", bindCardId);        String note = mCurriculumName.getText().toString().trim();        if (!TextUtils.isEmpty(note)) {            map.put("orderRemark", note);        }        map.put("orderNumber", mOrderNumber);        mHomeService.getLianLIanInfo(map)                .subscribeOn(Schedulers.io())                .compose(RxHelper.handleResult())                .doOnSubscribe(this::showLoading)                .subscribeOn(AndroidSchedulers.mainThread())                .observeOn(AndroidSchedulers.mainThread())                .doAfterTerminate(this::hideLoading)                .compose(bindToLifecycle())                .subscribe(new Subscriber<UnionPay>() {                    @Override                    public void onCompleted() {                    }                    @Override                    public void onError(Throwable e) {                    }                    @Override                    public void onNext(UnionPay unionPay) {                        PayOrder order = constructGesturePayOrder(unionPay);                        String content4Pay = BaseHelper.toJSONString(order);                        MobileSecurePayer msp = new MobileSecurePayer();                        msp.payAuth(content4Pay, mHandler,                                Constants.RQF_PAY, SureOrderActivity.this, false);                    }                });    } private Handler mHandler = createHandler();    private Handler createHandler() {        return new Handler() {            public void handleMessage(Message msg) {                String strRet = (String) msg.obj;                switch (msg.what) {                    case Constants.RQF_PAY: {                        JSONObject objContent = BaseHelper.string2JSON(strRet);                        String retCode = objContent.optString("ret_code");                        String retMsg = objContent.optString("ret_msg");                        // 成功                        if (Constants.RET_CODE_SUCCESS.equals(retCode)) {                            BaseHelper.showDialog(SureOrderActivity.this, "提示",                                    "支付成功",                                    android.R.drawable.ic_dialog_alert, new DialogInterface.OnClickListener() {                                        @Override                                        public void onClick(DialogInterface dialog, int which) {                                            sActivity.finish();                                            sActivity = null;                                            killMyself();                                        }                                    });                        } else if (Constants.RET_CODE_PROCESS.equals(retCode)) {                            // TODO 处理中,掉单的情形                            String resulPay = objContent.optString("result_pay");                            if (Constants.RESULT_PAY_PROCESSING                                    .equalsIgnoreCase(resulPay)) {                                BaseHelper.showDialog(SureOrderActivity.this, "提示",                                        objContent.optString("ret_msg"),                                        android.R.drawable.ic_dialog_alert, new DialogInterface.OnClickListener() {                                            @Override                                            public void onClick(DialogInterface dialog, int which) {                                                sActivity.finish();                                                sActivity = null;                                                killMyself();                                            }                                        });                            }                        } else {                            // TODO 失败                            BaseHelper.showDialog(SureOrderActivity.this, "提示", retMsg,                                    android.R.drawable.ic_dialog_alert, new DialogInterface.OnClickListener() {                                        @Override                                        public void onClick(DialogInterface dialog, int which) {                                            sActivity.finish();                                            sActivity = null;                                            killMyself();                                        }                                    });                        }                    }                    break;                }                super.handleMessage(msg);            }        };    }    /**     * 连连支付     *     * @param unionPay     * @return     */    private PayOrder constructGesturePayOrder(UnionPay unionPay) {        PayOrder order = new PayOrder();        order.setBusi_partner(unionPay.getBusi_partner());        order.setNo_order(unionPay.getNo_order());        order.setDt_order(unionPay.getDt_order());        order.setName_goods(unionPay.getName_goods());        order.setNotify_url(unionPay.getNotify_url());        order.setSign_type(unionPay.getSign_type());        order.setValid_order(unionPay.getValid_order());        order.setUser_id(unionPay.getUser_id());        order.setId_no(unionPay.getId_no());        order.setAcct_name(unionPay.getAcct_name());        order.setMoney_order(unionPay.getMoney_order());        order.setInfo_order(unionPay.getInfo_order());        // 风险控制参数        order.setRisk_item(unionPay.getRisk_item());        order.setOid_partner(unionPay.getOid_partner());        order.setSign(unionPay.getSign());        order.setId_type(unionPay.getId_type());        order.setCard_no(unionPay.getCard_no());        return order;    }
  • 这里只是认证支付,如果为其他的支付方式请打开MobileSecurePayer类进行更换调用,换个方法即可实现…….

是不是三分钟就好了……………..哈哈哈哈哈哈

原创粉丝点击