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

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

//必要字段
@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&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=得到的加密值

在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更新)相关推荐

  1. DayDayUp:2019.01.24新东方年会—俞敏洪点赞并奖励吐槽神曲《释放自我》12万元!—附全歌词(牛逼的人在哪里都不会彷徨)

    DayDayUp:2019.01.24新东方年会-俞敏洪点赞并奖励员工的吐槽神曲<释放自我>12万元!-附全歌词 目录 新东方年会神曲亮了 官微回应:放手去做,未来可期! 各家吃瓜 < ...

  2. 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 ...

  3. 2019.01.24【NOIP普及组】模拟赛C组

    总结 这一次的分数:100+25+62.5+62.5=250 第一题老实打完,100分,第二题蒙点25分,第三题只打了Floyed,还有一部分(匈牙利算法)没打,第四题蒙点+特判,62.5,(说实在我 ...

  4. 2019.01.24 NOIP训练 旅行(轮廓线dp)

    传送门 题意简述: 给一个n∗mn*mn∗m的有障碍的网格图,问你从左上角走到左下角并覆盖所有可行格子的路径条数. 思路: 路径不是很好算. 将图改造一下,在最前面添两列,第一列全部能通过,第二列只有 ...

  5. 2019.01.24【NOIP提高组】模拟B组 JZOJ 3912 超氧化钾

    DescriptionDescriptionDescription 余数求和原题 SolutionSolutionSolution ∑i=1n(kmodi)\sum_{i=1}^{n}(k\ mod\ ...

  6. 2019.01.24【NOIP提高组】模拟 B 组

    第一次AK JZOJ 3912 超氧化钾 题目 分析 代码 JZOJ 3903 艰难的选择 题目 分析 代码 JZOJ 3914 人品问题 题目 分析 代码 后续 JZOJ 3912 超氧化钾 题目 ...

  7. 2019/4/2更新 重制3617-6.17 增加918+6.21 二合一引导启动系统盘

    强烈推荐用小固态,不要用U盘,U盘容易出现错误.现在各种矿山倒塌,矿车一大堆,都带有16G的小固态或者msata之类的,刚好可以利用上. DS3617xs-6.17up3(重制UEFI版)介绍: 1. ...

  8. win10百度网盘不限速(百度网盘直接下载助手 +油猴脚本)(2019.3.15更新)

    亲测可以使用(操作有些麻烦, 不过可以使用) https://www.iplaysoft.com/baidu-wang-pan-xian-su.html 2019.3.15更新(不是很好用) wind ...

  9. iOS开发支付集成之支付宝支付

    项目中要用到支付功能,需要支付宝,微信,银联三大支付,所以打算总结一下,写两篇文章,方便以后的查阅, 大家在做的时候也能稍微参考下,用到的地方避免再次被坑.这是第二篇支付宝集成,第一篇银联支付在这里. ...

  10. 李洪强iOS开发支付集成之支付宝支付

    iOS开发支付集成之支付宝支付 下载支付宝SDK 首先是开发包下载,还是比较难发现的,网上以前文章中的链接都打不开,我找了好久才找到的.最新的地址在这里(注意的是下载出来的SDK包里面并没有传说中的开 ...

最新文章

  1. cygwin编译生成hello world_自己动手实现Lua:虚拟机、编译器、标准库(一)——搭建开发环境...
  2. 程序设计第三次作业附加 代码规范
  3. 什么是防火墙,真正意义上的防火墙
  4. File类及相关方法介绍
  5. java mysql 操作类_Java 数据库简单操作类
  6. 红橙Darren视频笔记 代理模式 动态代理和静态代理
  7. ~~试除法判定质数 (附模板题)
  8. 陕西师范大学计算机学院范虹,周素芳 -计算机与信息工程学院官网
  9. php服务器怎么保活,think-queue消息队列
  10. 2寸的照片长宽各是多少_两寸照片多少厘米?2寸免冠照片尺寸是多少?2寸免冠照片长宽多少?...
  11. windows“你尚未连接代理服务器可能有问题”解决方法
  12. 如何免费设置QQ空间背景音乐
  13. DolphinScheduler 3.0.0-alpha 安装问题
  14. 将xml文件转ass格式文件
  15. html中p元素添加超链接_如何在HTML中添加超链接
  16. java毕业设计基于spring框架的论坛网站项目设计和源码
  17. Python 实现黑白棋
  18. 【无标题】chatgpt桌面化,桌面应用的安装
  19. MKS MONSTER8 V1.0使用说明书(基于Marlin 2.0.X固件配置Voron 2.4)
  20. 大热片《寻梦环游记》到底在讲什么

热门文章

  1. Word导出PDF出现空白页
  2. tp6 中的save()使用说明
  3. win 10连上wifi 无Internet 解决方法
  4. vba删除word中图片与文本框等shape
  5. 后端开发工程师的工作流程是怎样的
  6. 【Hexo搭建个人博客】:yilia主题配置(二) - 背景图片
  7. iOS:iPhone XR、iPhoneXS、iPhone XS Max屏幕适配
  8. 退出matlab环境的命令行,实验一 MATLAB环境及命令窗口的使用
  9. 解除移动硬盘或u盘的占用无法安全弹出问题
  10. 边写SQL边学数据库入门实验2(持续更新)