1.概述
银联手机支付控件(以下简称支付控件),主要为合作商户的手机客户端提供安全、便捷的支付服务。用户通过在支付控件中输入银行卡卡号、手机号、密码(借记卡和预付卡)或者CVN2、有效期(信用卡)、验证码等要素完成支付。
(温馨提示: 对于使用中国银联老版支付控件商户可以跳过其他章节,直接对照本文档第5部分对工程进行改造)
2.支付流程介绍
通过支付控件进行交易的流程如下图:
流程图说明:
(1)用户在客户端中点击购买商品,客户端发起订单生成请求到商户后台;
(2)商户后台收到订单生成请求后,按照《手机控件支付产品接口规范》组织并推送订单信息至银联后台;
(3)银联后台接收订单信息并检查通过后,生成对应交易流水号(即TN),并回复至商户后台(应答要素:交易流水号等);
(4)商户后台接收到交易流水号(TN),将交易流水号返回至客户端;
(5)客户端通过交易流水号(TN)调用支付控件;
(6)用户在支付控件中输入相关支付信息后,由支付控件向银联后台发起支付请求;
(7)支付成功后,银联后台将支付结果通知给商户后台;
(8)银联后台同时也将支付结果通知支付控件;
(9)支付控件显示支付结果并将支付结果返回至客户端;
注: 本文档主要关注上述流程中(5)(9)部分的实现
iOS版本支付控件适用iOS 6.0及以上版本终端设备。
3.测试账号
以下是测试用卡号、手机号等信息(此类信息仅供测试使用,不会发生真实交易)
招商银行借记卡:6226090000000048 |
华夏银行贷记卡:6226388000000095 |
4.iOS客户端
本小节涉及到SDK的接口说明、Xcode工程配置及其接口调用细节,需要读者具有一定iOS编程经验。
商户开发者在获取到银联提供的开发包后请检查SDK文件所在目录upmp_iphone/paymentcontrol,以下部分提及的文件均在该目录中。银联支付控件静态库,以下简称UPPaymentControl,包含以下两个文件:
UPPaymentControl.h
libPaymentControl.a
4.2 接口说明
1、支付接口
- (BOOL)startPay:(NSString*)tn fromScheme:(NSString*)schemeStr mode:(NSString*)mode viewController:(UIViewController*)viewController |
各个参数定义如下表:
参数名称 |
类型 |
含义 |
tn |
NSString* |
必填项; 交易流水号,商户后台向银联后台提交订单信息后,由银联后台生成并下发给商户后台的交易凭证; |
schemeStr |
NSString * |
必填项; 商户自定义协议,商户在调用支付接口完成支付后,用于引导支付控件返回而定义的协议,具体请参考4.4第二步中URL Type定义; |
mode |
NSString* |
必填项; 接入模式,标识商户以何种方式调用支付控件,该参数提供以下两个可选值: "00"代表接入生产环境(正式版本需要); "01"代表接入开发测试环境(测试版本需要); |
viewController |
UIViewController* |
必填项; 发起调用的视图控制器,商户应用程序调用银联手机支付控件的视图控制器; |
返回值 |
BOOL |
YES:调起支付控件成功; NO:调起支付控件失败; |
2、检查是否安装银联App的接口
- (BOOL)isPaymentAppInstalled |
此函数无传入参数,主要功能检测用户手机上是否安装银联支付的APP,当用户手机上安装了银联支付APP时候返回YES。