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开发支付宝支付成功返回字符串的处理操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!