ios微信支付失败 php,iOS 微信支付疑难杂症。
哈嘍,大家好,感謝您來閱讀我的文章,作為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)){
}
隨手記錄,不喜勿噴。
總結
以上是生活随笔為你收集整理的ios微信支付失败 php,iOS 微信支付疑难杂症。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 连接池的作用,数据库连接池介
- 下一篇: windows的php如何安装目录结构,