unionPay


unionPay封装了银联手机控件支付,通过rd.unionPay获取支付对象。

支付流程介绍

通过支付控件进行交易的流程如下图:
image 流程图说明:
(1)用户在客户端中点击购买商品,客户端发起订单生成请求到商户后台;
(2)商户后台收到订单生成请求后,按照《UPMP商户接入接口规范》组织并推送订单信息至银联后台;
(3)银联后台接收订单信息并检查通过后,生成对应交易流水号(即TN),并回复交易流水号至商户后台(应答要素:交易流水号等);
(4)商户后台接收到交易流水号,将交易流水号返回给客户端;
(5)客户端通过交易流水号(TN)调用支付控件;
(6)用户在支付控件中输入相关支付信息后,由支付控件向银联后台发起支付请求;
(7)支付成功后,银联后台将支付结果通知给商户后台;
(8)银联将支付结果通知支付控件;
(9)支付控件显示支付结果并将支付结果返回给客户端;
注: 本文档主要关注上述流程中(5)、(9)部分的实现

详细接入流程请参考银联支付商家技术服务

支付状态(String):

  • success : 支付成功
  • fail : 支付失败
  • cancel : 用户取消支付

接入模式(String):

  • 00 : 代表接入生产环境(正式版本需要)
  • 01 : 代表接入开发测试环境(测试版本需要)

方法

  • pay : 银联控件支付方法

回调方法:

关于iOS9支持:

测试帐号:

提供测试使用卡号、手机号信息(此类信息仅供测试,不会发生正式交易)

招商银行借记卡:6226090000000048
手机号:18100000000
密码:111101
短信验证码:123456(先点获取验证码之后再输入)
证件类型:01身份证
证件号:510265790128303
姓名:张三

华夏银行贷记卡:6226388000000095
手机号:18100000000
cvn2:248
有效期:1219
短信验证码:123456(先点获取验证码之后再输入)
证件类型:01身份证
证件号:510265790128303
姓名:张三

pay


银联控件支付方法

rd.unionPay.pay(tn,mode,callback);
说明:

银联控件支付方法,按交易流水号支付订单

参数:
  • tn: (String) 必选 交易流水号信息。银联后台生成, 通过商户后台返回到客户端并传入支付控件。

  • mode: (接入模式) 必选 接入模式设定。

  • callback: (stateCallback) 必选 支付回调函数。

返回值:

无返回值

示例:
var tn;

var option = 
{
    method:'GET',
    url:'http://202.101.25.178:8080/sim/gettn',  //从银联测试服务器上获取tn号
    dataType:'text',
    timeout:30000,
    offline:'false',
    expires:30
};   

function stateUpdateCallback(state){
    alert('state: '+state);
}

rd.httpManager.sendRequest(
    option,
    function(header,data){
        tn=data;
        rd.unionPay.pay(tn,'01',stateUpdateCallback);
    },
    function(responseCode,responseHeader,responseMsg){alert(responseMsg);}
);

stateCallback


银联支付回调函数

function stateCallback(state) {

}
说明:

银联支付回调函数

参数:
返回值:

无返回值

关闭HTTPS请求协议


为了强制增强数据访问安全,iOS9默认会把大部分的HTTP请求都改为HTTPS请求。本插件基于银联支付集成. 所以,如果想在iOS9环境下使用本插件.则需要在pluginConfig.xml中进行配置。配置方式如下:

<!--找到InfoPlistEdit节点 在这里设置HTTPS相关参数.-->
<config pluginName="InfoPlistEdit">
    <ios>
        <!--true:表示开启http协议模式;false:表示关闭http协议模式,采用https请求协议.-->
         <param key="AllowAllHttpConnection" value="true"></param>
    </ios>
</config>
说明:

将以上配置参数拷贝至项目中的pluginConfig.xml文件中即可.若已有相同的配置项.则不需要再次拷贝.在原基础上添加即可.