热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iosh5版app支付回调空白页面_iOS接入建行龙支付说明

需求近期因为公司业务需求,需要接入建行支付,包含建行龙支付和建行分期,因为分期只需要接入H5即可,龙支付需要H5和APP之间

需求

近期因为公司业务需求,需要接入建行支付,包含建行龙支付和建行分期,因为分期只需要接入H5即可,龙支付需要H5和APP之间切换,故此将接入步骤详细记录下来,方便他人再次接入的时候,少入坑。(真的要吐槽下建行的文档,不够详细)。

##配置信息

1.首先需要在plist中进行scheme白名单配置,如下图:

d2edbe0b153edead78734fe97681f1f3.png

2.plist 的 NSAppTransportSecurity 字段添加相应的 NSExceptionDomains:

NSExceptionDomainsibsbjstar.ccb.com.cnNSExceptionAllowsInsecureHTTPLoadsNSExceptionRequiresForwardSecrecyNSIncludesSubdomains

3. 在URL Types 里面配置回调scheme,如下图中的此处的值很重要,我在集成的时候,就是因为这个值,导致整个支付流程走不下去,在支付中,安装了建行的app,建行支付页面的时候,也跳转到了建行APP中的支付页面,当我点击右上角**返回按钮或者支付完成后**,点击完成时,因为下图中的url schemes没有配置好,导致点击建行相关app回调按钮时,建行的app直接挂了。

e4f8fd4906142dfa95b21388b8ee9e35.png
62b5487f36939812f5d2556f70a6eb61.png
e57b382826e4b4412614b8da1a43f894.png

上面两张图是建行给的文档信息,后来进过反复试验,发现第三张图中的schemes,是第一张或者第二张图中 该字段 **THIRDAPPINFO** 所对应的值,后来将改值填入,需要说明的是,这个值生成有有规则的,具体需要和后端人员商讨。这个值真的很重要。

发起支付

1.在发起支付时,应该需要和后端调用接口,然后获取去相关的url或者参数.

- (void)loadBBCWithUrlStr:(NSString*)urlStr { if (urlStr.length > 0) { dispatch_async(dispatch_get_main_queue(), ^{ NSURLRequest *webRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:urlStr] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30]; [self.webView loadRequest:webRequest]; }); }}

2.处理WebView回调

#pragma mark - UIWebViewDelegate -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { self.currentLoadUrl = request.URL.absoluteString; NSString *currentLoadUrl = [self.currentLoadUrl uppercaseString]; NSURLComponents *components = [[NSURLComponents alloc] initWithString:self.currentLoadUrl]; NSArray *items = components.queryItems; __block BOOL paySuccess = NO; [items enumerateObjectsUsingBlock:^(NSURLQueryItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([obj.name isEqualToString:@"SUCCESS"]) { if ([obj.value isEqualToString:@"Y"]) { paySuccess = YES; *stop = YES; } } }]; if (paySuccess) { //建行分期成功拦截 if (self.successBlock) { self.successBlock(nil); } [self.navigationController popViewControllerAnimated:YES]; return YES; } NSString *urlScheme = [[request URL] scheme]; if ([urlScheme isEqualToString:@"mbspay"]) { if ([[UIApplication sharedApplication] canOpenURL:[request URL]]) { if (@available(iOS 10.0, *)) { [[UIApplication sharedApplication] openURL:request.URL options:@{} completionHandler:nil]; } else { [[UIApplication sharedApplication] openURL:request.URL]; } return NO; } } return YES;}

后记

理论上建行app取消支付和支付完成后,还是需要在AppDelegate中做相应的处理,才能知道支付结果



推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • position属性absolute与relative的区别和用法详解
    本文详细解读了CSS中的position属性absolute和relative的区别和用法。通过解释绝对定位和相对定位的含义,以及配合TOP、RIGHT、BOTTOM、LEFT进行定位的方式,说明了它们的特性和能够实现的效果。同时指出了在网页居中时使用Absolute可能会出错的原因,即以浏览器左上角为原始点进行定位,不会随着分辨率的变化而变化位置。最后总结了一些使用这两个属性的技巧。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
author-avatar
月獠_189
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有