iOS开发支付宝支付成功返回字符串的处理操作
{ 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是一个字符串怎么把它分解成字典用那。
我封装了一个方法可以用
/** *支付宝返回字段解析 * *@paramAllString字段 *@paramFirstSeparateString第一个分离字段的词 *@paramSecondSeparateString第二个分离字段的词 * *@return返回字典 */ +(NSDictionary*)VEComponentsStringToDic:(NSString*)AllStringwithSeparateString:(NSString*)FirstSeparateStringAndSeparateString:(NSString*)SecondSeparateString; +(NSMutableDictionary*)VEComponentsStringToDic:(NSString*)AllStringwithSeparateString:(NSString*)FirstSeparateStringAndSeparateString:(NSString*)SecondSeparateString{ NSMutableDictionary*dic=[NSMutableDictionarydictionary]; NSArray*FirstArr=[AllStringcomponentsSeparatedByString:FirstSeparateString]; for(inti=0;i<FirstArr.count;i++){ NSString*Firststr=FirstArr[i]; NSArray*SecondArr=[FirststrcomponentsSeparatedByString:SecondSeparateString]; [dicsetObject:SecondArr[1]forKey:SecondArr[0]]; } returndic; }
在AppDelegate用的时候代码如下
-(BOOL)application:(UIApplication*)applicationopenURL:(NSURL*)urlsourceApplication:(NSString*)sourceApplicationannotation:(id)annotation { [[AlipaySDKdefaultService]processOrderWithPaymentResult:urlstandbyCallback:^(NSDictionary*resultDic){ NSIntegerorderState=[resultDic[@"resultStatus"]integerValue]; if(orderState==9000){ NSString*allString=resultDic[@"result"]; NSString*FirstSeparateString=@"\"&"; NSString*SecondSeparateString=@"=\""; NSMutableDictionary*dic=[CommonToolsVEComponentsStringToDic:allStringwithSeparateString:FirstSeparateStringAndSeparateString:SecondSeparateString]; NSLog(@"ali=%@",dic); if([dic[@"success"]isEqualToString:@"true"]){ [[NSNotificationCenterdefaultCenter]postNotificationName:@"AliPaySucceed"object:niluserInfo:dic]; } }else{ NSString*returnStr; switch(orderState){ case8000: returnStr=@"订单正在处理中"; break; case4000: returnStr=@"订单支付失败"; break; case6001: returnStr=@"订单取消"; break; case6002: returnStr=@"网络连接出错"; break; default: break; } [HUDToolesshowTextHUD:returnStr]; [HUDToolesremoveHUD:4]; } }]; }
以上所述是小编给大家介绍的iOS开发支付宝支付成功返回字符串的处理操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!