iOS支付宝和微信支付完成后返回结果的处理

一、支付宝返回结果的处理:

  1. 支付宝支付成功后会返回一个字典,类似于下面的格式(对我们有用的是key值result对应的一串字符串,我们需要拿到里面的值做相应的操作):
{ 
memo = "";
result = "partner=\"2088101568358171\"&seller_id=\"[email protected]\"&out_trade_no=\"0819145412-6177\"&subject=\"测试\"&body=\"测试测试\"&total_fee=\"0.01\"¬ify_url=\"[http://notify.msp.hk/notify.htm](http://notify.msp.hk/notify.htm)\"&service=\"mobile.securitypay.pay\"&payment_type=\"1\"&_input_charset=\"utf-8\"&it_b_pay=\"30m\"&success=\"true\"&sign_type=\"RSA\"&sign=\"hkFZr+zE9499nuqDNLZEF7W75RFFPsly876QuRSeN8WMaUgcdR00IKy5ZyBJ4eldhoJ/2zghqrD4E2G2mNjs3aE+HCLiBXrPDNdLKCZgSOIqmv46TfPTEqopYfhs+o5fZzXxt34fwdrzN4mX6S13cr3UwmEV4L3Ffir/02RBVtU=\"";
resultStatus ="9000";
}
  1. 开始解析(转NSString为NSDictionary类型)
 NSDictionary *returnDic = [self stringToDictionaryWithString:resultDic[@"result"]];

- (NSDictionary *)stringToDictionaryWithString:(NSString *)string {
    
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    
    NSDictionary *dict = nil;
    
    if (!data) return nil;
    
    dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
    
    if (![dict isKindOfClass:[NSDictionary class]]) return nil;
    
    return dict;
}

成功转化为NSDictionary类型,就可以随意使用了。

二、微信支付返回结果的处理:

  1. 微信支付的返回结果就跟支付宝不一样了,它是一种类xml格式的,类似于下面:

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  1
  
  

  1. 开始解析(转xml格式为NSDictionary类型)
NSString *orderString = [response objectForKey:@"orderinfo"];

接下来就是对于xml的解析,解析方法在这里---github地址,它是基于SAX模式的,对NSXMLParser的二次封装,可以参考学习下。

你可能感兴趣的:(iOS支付宝和微信支付完成后返回结果的处理)