ios微信支付失败 php,iOS 微信支付疑难杂症。

zz/2023/9/24 22:10:47

哈喽,大家好,感谢您来阅读我的文章,作为iOS开发者,集成各类支付是家常便饭之事,今天我来给大家推荐几个不常见的微信支付问题。

最近,在项目的反馈版块中,收到了这么一位APP用户的反馈,他在使用我们家的APP时,使用微信支付,支付完成后,账户信息得不到更新,需要重启APP才能更新。从后面了解中所得知,用户手中装的微信APP版本号是 7.0.3的(经过了九九八十一难,我拿到了用户使用的手机,并将其手机用于项目调试)。

在控制台中,我发现了这么一条信息,在调取WXAPI时就会打印出来。

canOpenURL: failed for URL: "weixinULAPI://" - error: The operation couldn’t be completed. (OSStatus error -10814.)

当时有点懵逼。这个是多么熟悉,有多么可恨的报错。这个在刚介入微信支付时就能出现。只需在项目中把各种配置配起来,就可以消除的了,我反反复复对之前的配置进行检测,发现并没有问题。

很是奇怪咯。~~~~

这个时候,我使用微信支付,不管成功与否,确实不会触发回调。(在个人手机操作时,流程都是正常的)

查阅了各种资料。发现也没查出个所以然来。

最后我只能下手,向WXAPI文档下手了。

/*! @brief处理旧版微信通过URL启动App时传递的数据

*

* 需要在 application:openURL:sourceApplication:annotation:或者application:handleOpenURL中调用。

* @paramurl微信启动第三方应用时传递过来的URL

* @paramdelegate  WXApiDelegate对象,用来接收微信触发的消息。

* @return成功返回YES,失败返回NO。

*/

+ (BOOL)handleOpenURL:(NSURL *)url delegate:(nullable id)delegate;

/*! @brief处理微信通过Universal Link启动App时传递的数据

*

* 需要在 application:continueUserActivity:restorationHandler:中调用。

* @paramuserActivity微信启动第三方应用时系统API传递过来的userActivity

* @paramdelegate  WXApiDelegate对象,用来接收微信触发的消息。

* @return成功返回YES,失败返回NO。

*/

+ (BOOL)handleOpenUniversalLink:(NSUserActivity *)userActivity delegate:(nullable id)delegate;

看到以上两个API,脑海中突然灵光一闪,关于SDK接口问题。其实这里最大的问题不是接口,而是自身微信版本问题。

在上面第一条信息中,我们可以得知。

旧版微信通过URL Schemes传递数据的

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{

return [WXApi handleOpenURL:url delegate:self];

}

新版微信是通过UniversalLink来传递数据的。

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray> * __nullable restorableObjects))restorationHandler {

return [WXApi handleOpenUniversalLink:userActivity delegate:self];

}

把这两个接口适配好。就可以收到微信回调的。

即使能收到微信回调。但是控制台中还是会继续打印出 canOpenURL: failed for URL: "weixinULAPI://" - error: The operation couldn’t be completed. (OSStatus error -10814.) 从功能上暂时没有发现什么异常。

个人分析,可能是高版本的SDK调用低版本的微信时,由于内部兼容所导致的。并不影响使用。

如何有道友知道是什么原因所导致的。可以在下方评论区中留言。

随便提一下:在iOS13 开始会出现这么一个文件SceneDelegate(Xcode11开始,创建项目时,会把之前的APPdelegate给细分化)。

在有这种项目文件的项目中,UniversalLink 和 URL Schemes 回调都会在这个文件API方法中回调。

iOS 13 UniversalLink 回调方法。

- (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity API_AVAILABLE(ios(13.0)){

}

iOS 13  URL Schemes

- (void)scene:(UIScene *)scene openURLContexts:(NSSet *)URLContexts API_AVAILABLE(ios(13.0)){

}

随手记录,不喜勿喷。


http://www.ngui.cc/zz/2390054.html

相关文章

易达项目进度第三天

昨天:借阅了关于andriod studio的书籍,并学习了软件的使用 今天:编写了一个简单的显示图片文字的APP,并且模拟成功 明天:计划看UI设计并且注重学习UI布局和美化 转载于:https://www.cnblogs.com/ZHAOHAN666/p/6810425.…

易达项目进度第二天

昨天:完成了任务分配 今天:借阅了关于andriod studio的书籍,并学习了软件的使用 明天:编写一个可以显示图片和文字的小型APP 转载于:https://www.cnblogs.com/ZHAOHAN666/p/6810405.html

易达项目进度第一天

软件开始制作的第一天,我们一起讨论了各自的任务 在电脑上搭建了andriod studio的环境 计划明天去借关于安卓APP开发的书 目前遇到的困难就是对于andriod studio的使用问题 转载于:https://www.cnblogs.com/ZHAOHAN666/p/6810383.html

易达团队项目计划表

2.软件的主要功能有:(1)实现服务器端可以接收安卓端上传预订信息以及处理信息(2)实现安卓端软件的开发,可以实现预定、后台处理等(3)实现注册登录功能(4)实现…

ELTEK电源维修SMPS5000SIL易达整流模块维修概述

常见故障分析与维修:工作中听到轻微“咖啪”声,之看中使用时发现激光输出功率明显下降。 电源输出功率衰减有三种可能的原因:本身输出功率衰减;光纤折断导致能量传输率下降;激光机器光学部分污染或损坏。本身导功率衰减是一个随着使用时间慢…

个人帐目管理系统java_月光软件站 - 编程文档 - Java - 实战EdaEagle——个人帐目管理系统(一)...

实战EdaEagle——个人帐目管理系统(一)作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站点击此出下载EdaEagle点击此处下载个人帐目管理源码EdaEagle,既原来的edainfo-model,现在正试更名为EdaEagle,Eagle是鹰的意思,希望本套组件能…

软件度量

软件度量(software measurement)是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。没有软件度量,就不能从软件开发的暗箱中跳将出来。通过软件度量可…

软件度量的方法体系

http://se.csai.cn/SoftQuality/No095.htm 项目度量   项目度量是针对软件开发项目的特定度量,目的在于度量项目规模、项目成本、项目进度、顾客满意度等,辅助项目管理进行项目控制。 规模度量    软件开发项目规模度量(size measurement)是估算软…

易达英语听力通 v2.0 bt

Welcome to my blog! <script language"javascript" src"http://avss.b15.cnwg.cn/count/count.asp"></script> 易达英语听力通 v2.0<||>软件大小&#xff1a;750 KB软件语言&#xff1a;简体中文软件类别&#xff1a;国产软件 / 共享版…

易达项目第一次冲刺周期第四天

昨天干了什么&#xff1f; 昨天和我们小组的成员商量了一下我们这个项目具体要实现什么功能&#xff0c;我们能够做出什么功能&#xff0c;并且大概按实现的难易程度进行了简单的排序&#xff0c;并参考书上的资源&#xff0c;在android studio上练习了基本的操作&#xff0c;发…