支付寶錢包支付接口開發包2.0標准版(iOS 2.2.1) ,回調不出來,demo給出的方法是:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { if ([url.host isEqualToString:@"safepay"]) { [[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:^(NSDictionary *resultDic) { NSLog(@"result = %@",resultDic); NSString *resultStr = resultDic[@"result"]; }]; } return YES; }
而事實上的回調是這樣的:
if ([url.host isEqualToString:@"safepay"]) { [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { NSLog(@"result = %@",resultDic); NSString *resultStr = resultDic[@"memo"]; NSLog(@"memo = %@",resultStr); }]; }
雖然集成過程中很簡單,但是這個回調卻讓人想屎:
支付表是這樣說的:
/** * 處理授權信息Url * * @param resultUrl 錢包返回的授權結果url * @param completionBlock 跳授權結果回調,保證跳轉錢包授權過程中,即使調用方app被系統```kill```時,能通過這個回調取到支付結果。 */ - (void)processAuth_V2Result:(NSURL *)resultUrl standbyCallback:(CompletionBlock)completionBlock;
另附幾個狀態碼:
9000 訂單支付成功 8000 正在處理中 4000 訂單支付失敗 6001 用戶中途取消 6002 網絡連接出錯