集成建行龙支付(2019.01.24更新)
近期,公司项目需要集成支付业务(支付宝,微信,建行龙支付),对于支付宝、及微信就不做总结了,毕竟网络上参考资料太多了。今天主要说一下集成建行支付,在开始之前先吐槽一下建行的集成文档那叫一个烂啊!好吧!不说了,开始啦!
以下对建行支付的字段进行介绍:分为必要及非必要的;
//必要字段
@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; //客户端标识
@property (copy, nonatomic) NSString *TIMEOUT;//订单超时时间例:20161028101226
@property (copy, nonatomic) NSString *ISSINSCODE;//银行代码ICBC
另外还有一个特殊字段:THIRDAPPINFO,该字段有值的情况下,系统会优先调用app进行支付,在app未安装的情况下才会进行H5页面支付,将该字段值设置为你的应用程序的URL Schemes,否则支付成功后返回不到你的APP。
@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®INFO=%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=®INFO=%u5C0F%u98DE%u4FA0&PROINFO=%u5145%u503C%u5361&REFERER=nihao&MAC=得到的加密值
在plist中进行配置
URL types:设置URL Schemes
webView发起支付请求:
- (void)loadWithUrlStr:(NSString*)urlStr
{if (urlStr.length > 0) {dispatch_async(dispatch_get_main_queue(), ^{NSURLRequest *webRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]cachePolicy:NSURLRequestReturnCacheDataElseLoadtimeoutInterval:30];[self.webView loadRequest:webRequest];});}
}
#pragma mark ============== webview相关 回调及加载 ==============
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{NSLog(@"%@",request.URL.absoluteString);//简单的请求拦截处理NSString *strM = request.URL.absoluteString;if ([strM containsString:@"mbspay"]) {[[UIApplication sharedApplication]openURL:[NSURL URLWithString:strM] options:@{} completionHandler:nil];return NO;}return YES;
}
使用上面的H5支付方式,出现了一些设备调不出建行APP进行支付,建行又给了新的解决方案:使用SDK文档。
请求参数跟上面的一样,不再进行说明:
第一步:
把 iOS 包中的压缩文件中以下文件(CCBNetPaySDK.framework,libWeChatSDK.a)拷贝到项目文件夹下,并导入到项目工程中(图 1)。并检查是否引用CCBNetPaySDK、libWeChatSDK.a (图 2)(如果项目中已有引用微信的 libWeChatSDK.a,则无需再导入 libWeChatSDK.a 文件,项目中也不用导入 WXApi.h 和 WXApiObject.h 文件,直接应用 CCBNetPaySDK.framework 中的 WXApi.h 和 WXApiObject.h 文件即可,如图 3)如需调用微信支付,则需另外配置 scheme (从微信开发平台注册 app 得到的 APPID),配置 APP 跳转后返回 scheme(商品参数THIRDAPPINFO,如图4)
图1:
图2:
图3:
第二步:调用SDK支付接口
首先,在需要调用 CCBNetPaySDK 的文件中,增加头文件引用。
然后选择相应的支付方法
支付方法列表:CCBNetPay.h 类接口主要为商户提供订单龙支付支付功能。
第三步:支付结果获取及处理
二、建行支付常见问题汇总
1、SDK 不能跳转至手机银行。
2、支付完成不能跳转回APP
3、支付完成能跳转回 APP,但是收不到返回信息。
4、Code=-1002 "unsupported URL"
5、ERRORCODE = 0130Z110C100
提示:密钥有问题,请检查密钥。
6、支付成功后点击完成返回结果 code = -1
提示:
是否为一订单号支付成功后在短时间内再次支付。
集成建行龙支付(2019.01.24更新)相关推荐
- DayDayUp:2019.01.24新东方年会—俞敏洪点赞并奖励吐槽神曲《释放自我》12万元!—附全歌词(牛逼的人在哪里都不会彷徨)
DayDayUp:2019.01.24新东方年会-俞敏洪点赞并奖励员工的吐槽神曲<释放自我>12万元!-附全歌词 目录 新东方年会神曲亮了 官微回应:放手去做,未来可期! 各家吃瓜 < ...
- DayDayUp:2019.01.24马云冬季达沃斯论坛(演讲)—Machine will be smarter than human beings, but will never be wiser
DayDayUp:2019.01.24马云冬季达沃斯论坛(演讲)-Machine will be smarter than human beings, but will never be wiser ...
- 2019.01.24【NOIP普及组】模拟赛C组
总结 这一次的分数:100+25+62.5+62.5=250 第一题老实打完,100分,第二题蒙点25分,第三题只打了Floyed,还有一部分(匈牙利算法)没打,第四题蒙点+特判,62.5,(说实在我 ...
- 2019.01.24 NOIP训练 旅行(轮廓线dp)
传送门 题意简述: 给一个n∗mn*mn∗m的有障碍的网格图,问你从左上角走到左下角并覆盖所有可行格子的路径条数. 思路: 路径不是很好算. 将图改造一下,在最前面添两列,第一列全部能通过,第二列只有 ...
- 2019.01.24【NOIP提高组】模拟B组 JZOJ 3912 超氧化钾
DescriptionDescriptionDescription 余数求和原题 SolutionSolutionSolution ∑i=1n(kmodi)\sum_{i=1}^{n}(k\ mod\ ...
- 2019.01.24【NOIP提高组】模拟 B 组
第一次AK JZOJ 3912 超氧化钾 题目 分析 代码 JZOJ 3903 艰难的选择 题目 分析 代码 JZOJ 3914 人品问题 题目 分析 代码 后续 JZOJ 3912 超氧化钾 题目 ...
- 2019/4/2更新 重制3617-6.17 增加918+6.21 二合一引导启动系统盘
强烈推荐用小固态,不要用U盘,U盘容易出现错误.现在各种矿山倒塌,矿车一大堆,都带有16G的小固态或者msata之类的,刚好可以利用上. DS3617xs-6.17up3(重制UEFI版)介绍: 1. ...
- win10百度网盘不限速(百度网盘直接下载助手 +油猴脚本)(2019.3.15更新)
亲测可以使用(操作有些麻烦, 不过可以使用) https://www.iplaysoft.com/baidu-wang-pan-xian-su.html 2019.3.15更新(不是很好用) wind ...
- iOS开发支付集成之支付宝支付
项目中要用到支付功能,需要支付宝,微信,银联三大支付,所以打算总结一下,写两篇文章,方便以后的查阅, 大家在做的时候也能稍微参考下,用到的地方避免再次被坑.这是第二篇支付宝集成,第一篇银联支付在这里. ...
- 李洪强iOS开发支付集成之支付宝支付
iOS开发支付集成之支付宝支付 下载支付宝SDK 首先是开发包下载,还是比较难发现的,网上以前文章中的链接都打不开,我找了好久才找到的.最新的地址在这里(注意的是下载出来的SDK包里面并没有传说中的开 ...
最新文章
- cygwin编译生成hello world_自己动手实现Lua:虚拟机、编译器、标准库(一)——搭建开发环境...
- 程序设计第三次作业附加 代码规范
- 什么是防火墙,真正意义上的防火墙
- File类及相关方法介绍
- java mysql 操作类_Java 数据库简单操作类
- 红橙Darren视频笔记 代理模式 动态代理和静态代理
- ~~试除法判定质数 (附模板题)
- 陕西师范大学计算机学院范虹,周素芳 -计算机与信息工程学院官网
- php服务器怎么保活,think-queue消息队列
- 2寸的照片长宽各是多少_两寸照片多少厘米?2寸免冠照片尺寸是多少?2寸免冠照片长宽多少?...
- windows“你尚未连接代理服务器可能有问题”解决方法
- 如何免费设置QQ空间背景音乐
- DolphinScheduler 3.0.0-alpha 安装问题
- 将xml文件转ass格式文件
- html中p元素添加超链接_如何在HTML中添加超链接
- java毕业设计基于spring框架的论坛网站项目设计和源码
- Python 实现黑白棋
- 【无标题】chatgpt桌面化,桌面应用的安装
- MKS MONSTER8 V1.0使用说明书(基于Marlin 2.0.X固件配置Voron 2.4)
- 大热片《寻梦环游记》到底在讲什么