集成建行龙支付

近期,公司项目需要集成支付业务(支付宝,微信,建行龙支付),对于支付宝、及微信就不做总结了,毕竟网络上参考资料太多了。今天主要说一下集成建行支付,在开始之前先吐槽一下建行的集成文档那叫一个烂啊!好吧!不说了,开始啦!

以下对建行支付的字段进行介绍:分为必要及非必要的;

//必要字段
@property (copy, nonatomic) NSString *MERCHANTID ;//商户代码 (*重要的)
@property (copy, nonatomic) NSString *POSID;//商户柜台代码(*重要的)
@property (copy, nonatomic) NSString *BRANCHID;//分行代码(*重要的)
@property (copy, nonatomic) NSString *ORDERID;//订单号:由商户提供,最长30位
@property (copy, nonatomic) NSString *PAYMENT;//付款金额:由商户提供,按实际金额给出
@property (copy, nonatomic) NSString *CURCODE;//币种,01表示人民币:01
@property (copy, nonatomic) NSString *TXCODE;//交易码 由建行统一分配为520100
@property (copy, nonatomic) NSString *REMARK1;
@property (copy, nonatomic) NSString *REMARK2;
@property (copy, nonatomic) NSString *TYPE;//接口类型:1
@property (copy, nonatomic) NSString *PUB;//公钥后30位(*重要的)
@property (copy, nonatomic) NSString *GATEWAY; //网关类型
@property (copy, nonatomic) NSString *CLIENTIP;//客户端IP
@property (copy, nonatomic) NSString *REGINFO;//客户注册信息
@property (copy, nonatomic) NSString *PROINFO;//客户购买的商品
@property (copy, nonatomic) NSString *REFERER; //商户URL
//非必要字段
@property (copy, nonatomic) NSString *INSTALLNUM;//银行代码3
@property (copy, nonatomic) NSString *SMERID;//二级商户代码111
@property (copy, nonatomic) NSString *SMERNAME;//二级商户名称
@property (copy, nonatomic) NSString *SMERTYPEID;//二级商户类别代码112
@property (copy, nonatomic) NSString *SMERTYPE;//二级商户类别名称
@property (copy, nonatomic) NSString *TRADECODE;//交易类型代码001
@property (copy, nonatomic) NSString *TRADENAME;//交易类型名称
@property (copy, nonatomic) NSString *SMEPROTYPE;//商品类别代码1
@property (copy, nonatomic) NSString *PRONAME;//商品类别名称
@property (copy, nonatomic) NSString *THIRDAPPINFO; //客户端标识comccbpay10000114pay
@property (copy, nonatomic) NSString *TIMEOUT;//订单超时时间例:20161028101226
@property (copy, nonatomic) NSString *ISSINSCODE;//银行代码ICBC

另外还有一个特殊字段:THIRDAPPINFO,该值可以任意写,该字段有值的情况下,系统会优先调用app进行支付,在app未安装的情况下才会进行H5页面支付。

@property (copy, nonatomic) NSString *THIRDAPPINFO; //客户端标识

以上均是必须参与摘要的字段,将以上字段进行拼接得到需加密字符串String。打印如下:

MERCHANTID=123456789&POSID=000000000&BRANCHID=110000000&ORDERID=19991101234&PAYMENT=0.01&CURCODE=01&TXCODE=520100&REMARK1=&REMARK2=&TYPE=1&GATEWAY=&CLIENTIP=172.0.0.1&REGINFO=%u5C0F%u98DE%u4FA0&PROINFO=%u5145%u503C%u5361&REFERER=nihao

最后来说下MAC字段:MAC是由对String进行MD5加密得到;

//MD5加密
NSString *MAC = [MD5 MD5:String];

最后进行拼接完整字符串:在String后添加MAC字段值:如下:

https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain?MERCHANTID=123456789&POSID=000000000&BRANCHID=110000000&ORDERID=19991101234&PAYMENT=0.01&CURCODE=01&TXCODE=520100&REMARK1=&REMARK2=&TYPE=1&GATEWAY=&CLIENTIP=&REGINFO=%u5C0F%u98DE%u4FA0&PROINFO=%u5145%u503C%u5361&REFERER=nihao&MAC=得到的加密值

猜你喜欢

转载自www.cnblogs.com/xjf125/p/9650134.html