constructionPay

来自于:APICloud

概述

建行支付 SDK 概述

建设银行手机支付控件(以下简称支付控件),主要为合作商户的手机客户端提供安全、便 捷的支付服务。目前支付控件支持 iOS、Android 平台,用户通过在支付控件中输入银行卡卡号、手机号、密码 (借记卡和预付卡)或者 CVN2、有效期(信用卡) 、验证码等要素完成支付。

支付业务流程

通过支付控件进行交易的流程如下所示:

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

(2)商户后台收到订单生成请求后,按照《手机支付商户后台接口规范》组织并 推送订单信息至清算平台;

(3)清算平台接收订单信息并检查通过后,生成对应交易流水号 (即 TN),并回复交易流水号至商户后台(应答要素:交易流水号等);

(4)商户后台接收到交易流水号,将交易流水号返回给客户端;

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

(6)用户在支付控件中输入相关支付信息后,由支付控件向清算平台发起支付请求;

(7)支付成功后,清算平台将支付结果通知给商户后台;

(8)清算平台将支付结果通知支付控件;

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

说明:支付结果请以后台通知为准!

本模块实现了上述流程的(5)---(9)步骤

测试账号


招商银行借记卡:6226 0900 0000 0048

手机号:18100000000

密码:111101

短信验证码:123456(先点获取验证码之后再输入)

证件类型:01 身份证

证件号:510265790128303

姓名:张三


华夏银行贷记卡:6226388000000095

手机号:18100000000

CVN2:248

有效期:1219

短信验证码:123456(先点获取验证码之后再输入)

证件类型:01 身份证

证件号:510265790128303

姓名:张三


配置 config.xml 文件:

1,配置 urlScheme

使用此模块前需先配置 config.xml文件,方法如下:

- 名称:constructionPay
- 参数:urlScheme
- 配置示例:

    ```js
    <feature name="constructionPay">
        <param name="urlScheme" value="constructionPayA000000011" />
        <param name="urlScheme" value="wx9b4839c6e3ffbe1e" />
        <param name="constructionKey" value="constructionPayA000000011" />
        <param name="weixinKey" value="wx9b4839c6e3ffbe1e" />
    </feature>
    ```

- 字段描述:

    **urlScheme**:(必须配置)用于实现应用间跳转及数据交换,本应用可以启动建行支付app,也可以从建行支付app跳回本应用(***此时需要云编译或自定义loader才能测试本功能***)。urlScheme 的 value 值由字符串 ‘constructionPay’ 和本应用的 widgetId 拼接而成,如:constructionPayA000000011;若要支持微信支付,则需要将微信的 appid 也配置到该位置,如上述配置实例所示。

    **constructionKey**:(必须配置)与 constrution 的 urlScheme 一致,如:constructionPayA000000011


    **weixinKey**:(必须配置)与 微信的 urlScheme 一致,如:wx9b4839c6e3ffbe1e

2,配置可被检测的 URL Scheme

使用本模块之前还需要配置可被检测的 URL Scheme:mbspay、uppaysdk、uppaywallet、uppayx1、uppayx2、 uppayx3 这些 item。

配置示例:

    //多个值之间用英文逗号隔开
    <preference name="querySchemes" value="mbspay,uppaysdk,uppaywallet,uppayx1,uppayx2,uppayx3" />

配置本参数原理解释可参考 APICloud 官方技术文档

注:作为自定义模块,需自行修改模块包中res_constructionPay文件夹下的AndroidManifest.xml文件内容,修改内容如下:

1.将URLScheme替换为config.xml中的urlScheme 2.将apiKey替换为config.xml中的weixinKey

getTn

获取订单号(tn),注意:获取订单号可自行访问服务器实现,本节接口方便测试使用。

getTn({params}, callback(ret, err))

params

goodsId:

  • 类型:字符串
  • 描述:(可选项)商品id

bankId:

  • 类型:字符串
  • 描述:(可选项)交易银行
  • 默认:999
  • 取值范围:
    • 999:银联
    • 105:建行
    • 991:微信
    • 992:支付宝

serverUrl:

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   status: true,     //布尔类型;是否成功返回
    tn: ""            //字符串类型;返回 tn 号
}

示例代码

    var cnPay = api.require('constructionPay');
    cnPay.getTn({
        goodsId:'10001',
        bankId: "105",
        serverUrl: "http://218.30.21.104/ezfmp_demo/payment.action"
    }, function(ret){
       api.alert({msg:JSON.stringify(ret)});
    });

可用性

iOS系统 Android系统

可提供的1.0.0及更高版本

pay

按交易流水号支付订单

pay({params}, callback(ret, err))

params

tn:

  • 类型:字符串
  • 描述:交易流水号信息,银联后台生成,通过商户后台返回到客户端

mode:

  • 类型:字符串
  • 描述:接入模式设定
  • 默认值:01
  • 取值范围:
    • 00:代表接入生产环境(正式版本需要)
    • 01:代表接入开发测试环境(测试版本需要)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    result: "Y"           //字符串类型;支付结果信息
                          //取值范围:
                          //Y(支付成功)
                          //N(支付失败)
                          //C(用户取消支付)
}

示例代码

var cnPay = api.require('constructionPay');
cnPay.pay({
    tn: '',
    mode: '00'
}, function(ret){
   api.alert({msg:JSON.stringify(ret)});
});

可用性

iOS系统 Android系统

可提供的1.0.0及更高版本