一、關于微信支付回調
1.具體支付配置參考文檔,強調一下:所有的加密等除了調用SDK的代碼外,別的全部應該放到服務器!!
2.關于回調:支付成功之后可能會出現不回調或者無法返回APP的問題。首先應該檢查一下自己的URL-Schemes,如果沒問題就繼續。
3.AppDelegate.m中。前兩個9.0之前的,最后一個9.0之后的,為了兼容應該在三個里面都寫上同樣的代碼。支付的回調都是在這里面的。
4.鑒于有時候集成多種支付方式,走的都是同樣的代理方法,這時候就要區分一下是哪一個回調了,根據不同的支付方式回調,觸發不同的動作。
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url NS_DEPRECATED_IOS(2_0, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED;
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation NS_DEPRECATED_IOS(4_2, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED;
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options NS_AVAILABLE_IOS(9_0); // no equiv. notification. return NO if the application can't open for some reason
5.區分方法,例如:
//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) //你的微信開發者appid
return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
else{
//在這里處理別的支付方式或者別的回調
return [UMSocialSnsService handleOpenURL:url wxApiDelegate:[WXApiManager sharedManager]];
}
}