{ memo=""; result="partner=/"311811/"&seller_id=/"nse@gmail.com/"&out_trade_no=/"S005372/"&subject=/"/U522b/U5885/U8ba2/U5355/"&body=/"/U5885/"&total_fee=/"0.1/"¬ify_url=/"http://baidu.com/"&service=/"mobile.secy.pay/"&payment_type=/"1/"&_input_charset=/"UTF-8/"&it_b_pay=/"30m/"&success=/"true/"&sign_type=/"RSA/"&sign=/"dMiqkRZvnpTnJp9zbwGNAL3Bu43RMocNwOAsRYFnueZX8Uwy81zXHLg=/""; resultStatus=9000;}
如上所示,為支付寶的返回數據結果??赡苡械耐瑢W就懵了,這個result是一個字符串怎么把它分解成字典用那。
我封裝了一個方法可以用
/** * 支付寶返回字段解析 * * @param AllString 字段 * @param FirstSeparateString 第一個分離字段的詞 * @param SecondSeparateString 第二個分離字段的詞 * * @return 返回字典 */+(NSDictionary *)VEComponentsStringToDic:(NSString*)AllString withSeparateString:(NSString *)FirstSeparateString AndSeparateString:(NSString *)SecondSeparateString;+(NSMutableDictionary *)VEComponentsStringToDic:(NSString*)AllString withSeparateString:(NSString *)FirstSeparateString AndSeparateString:(NSString*)SecondSeparateString{ NSMutableDictionary *dic=[NSMutableDictionary dictionary]; NSArray *FirstArr=[AllString componentsSeparatedByString:FirstSeparateString]; for (int i=0; i<FirstArr.count; i++) { NSString *Firststr=FirstArr[i]; NSArray *SecondArr=[Firststr componentsSeparatedByString:SecondSeparateString]; [dic setObject:SecondArr[1] forKey:SecondArr[0]]; } return dic;}
在AppDelegate用的時候代碼如下
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { NSInteger orderState=[resultDic[@"resultStatus"]integerValue]; if (orderState==9000) { NSString *allString=resultDic[@"result"]; NSString * FirstSeparateString=@"/"&"; NSString * SecondSeparateString=@"=/""; NSMutableDictionary *dic=[CommonToolsVEComponentsStringToDic:allString withSeparateString:FirstSeparateString AndSeparateString:SecondSeparateString]; NSLog(@"ali=%@",dic); if ([dic[@"success"]isEqualToString:@"true"]) { [[NSNotificationCenter defaultCenter] postNotificationName:@"AliPaySucceed" object:nil userInfo:dic]; } }else{ NSString *returnStr; switch (orderState) { case 8000: returnStr=@"訂單正在處理中"; break; case 4000: returnStr=@"訂單支付失敗"; break; case 6001: returnStr=@"訂單取消"; break; case 6002: returnStr=@"網絡連接出錯"; break; default: break; } [HUDTooles showTextHUD:returnStr]; [HUDTooles removeHUD:4]; } }];}
以上所述是小編給大家介紹的iOS開發支付寶支付成功返回字符串的處理操作,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答