iOS集成微信支付的一些坑(onResp不回调、闪回等)

2023-12-14 14:32

本文主要是介绍iOS集成微信支付的一些坑(onResp不回调、闪回等),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

iOS集成微信支付总体来说还是比较容易的(如果没有那些坑的话),所有文档都在:

https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_1

甚至只要看:

https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3

https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_5

这两部分就可以搞定。

遇到的大部分问题来自于另一个非常常用的第三方:友盟分享

关于

已经集成了友盟分享

只要下载微信sdk,并复制到友盟目录下的UMSocial_Sdk_Extra_Frameworks/Wechat文件夹中,替换存在文件。

关于
发起支付之后只显示一个确定按钮
这里写图片描述

就是这样,没有任何错误提示,断点返回的UrlSchemes,也只有一个ret=-2,官方文档解释为:

“无需处理。发生场景:用户不支付了,点击取消,返回APP。”

遇到这个问题,基本就是发起请求的参数传错了。

PayReq *request = [[[PayReq alloc] init] autorelease];
request.partnerId = @”10000100”;
request.prepayId= @”1101000000140415649af9fc314aa427”;
request.package = @”Sign=WXPay”;
request.nonceStr= @”a462b76e7436e98e0ed6e13c64b4fd1c”;
request.timeStamp= @”1397527777”;
request.sign= @”582282D72DD2B03AD892830965F428CB16E7A256”;
[WXApi sendReq:request];

对照文档仔细排查吧,一定要注意大小写,另外,sign签名时,参数名要用小些(此处官方文档有错误,文档写的用驼峰那种:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3 步骤3-参与签名的字段名,此处感谢 @挨踢实习生) 。

关于

闪回

发起支付后,打开微信,然后立即返回到了你的程序。

原因是项目同时集成了友盟,注册微信的方法写在了初始化友盟分享的前面,调换一下位置即可。

//向微信注册,需要写到初始化友盟分享的后面
[WXApi registerApp:@”wx000000000” withDescription:@”**weixinpay”]; //你的微信appid

关于

onResp不回调

这个问题依然来自跟友盟分享的冲突。虽然友盟提供了一个

+(BOOL)handleOpenURL:(NSURL *)url wxApiDelegate:(id)wxApiDelegate;

方法,但是通过此方法注册的delegate并没有被回调(这个有可能在不同系统版本,友盟sdk版本上效果不同)。

解决方法就是判断一下回调是不是微信支付:

//url Schemes回调
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{return [self applicationOpenURL:url];
}- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{return [self applicationOpenURL:url];
}- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options
{return [self applicationOpenURL:url];
}- (BOOL)applicationOpenURL:(NSURL *)url
{if([[url absoluteString] rangeOfString:@"wx000000000000://pay"].location == 0) //你的微信开发者appidreturn [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];elsereturn [UMSocialSnsService handleOpenURL:url wxApiDelegate:[WXApiManager sharedManager]];
}

转载至http://www.2cto.com/kf/201603/492080.html

这篇关于iOS集成微信支付的一些坑(onResp不回调、闪回等)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/492896

相关文章

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

SpringBoot使用注解集成Redis缓存的示例代码

《SpringBoot使用注解集成Redis缓存的示例代码》:本文主要介绍在SpringBoot中使用注解集成Redis缓存的步骤,包括添加依赖、创建相关配置类、需要缓存数据的类(Tes... 目录一、创建 Caching 配置类二、创建需要缓存数据的类三、测试方法Spring Boot 熟悉后,集成一个外

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

SpringBoot3集成swagger文档的使用方法

《SpringBoot3集成swagger文档的使用方法》本文介绍了Swagger的诞生背景、主要功能以及如何在SpringBoot3中集成Swagger文档,Swagger可以帮助自动生成API文档... 目录一、前言1. API 文档自动生成2. 交互式 API 测试3. API 设计和开发协作二、使用

SpringBoot如何集成Kaptcha验证码

《SpringBoot如何集成Kaptcha验证码》本文介绍了如何在Java开发中使用Kaptcha生成验证码的功能,包括在pom.xml中配置依赖、在系统公共配置类中添加配置、在控制器中添加生成验证... 目录SpringBoot集成Kaptcha验证码简介实现步骤1. 在 pom.XML 配置文件中2.

Python中的异步:async 和 await以及操作中的事件循环、回调和异常

《Python中的异步:async和await以及操作中的事件循环、回调和异常》在现代编程中,异步操作在处理I/O密集型任务时,可以显著提高程序的性能和响应速度,Python提供了asyn... 目录引言什么是异步操作?python 中的异步编程基础async 和 await 关键字asyncio 模块理论

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。