1
2
3
4
5
|
{ 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 ; } |
如上所示,为支付宝的返回数据结果。可能有的同学就懵了,这个result是一个字符串怎么把它分解成字典用那。
我封装了一个方法可以用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/** * 支付宝返回字段解析 * * @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用的时候代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
-(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开发支付宝支付成功返回字符串的处理操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://blog.csdn.net/lea__dongyang/article/details/56601696