iOS开发支付宝支付成功返回字符串的处理操作
程序员文章站
2024-02-15 20:01:10
{
memo="";
result="partner=\"311811\"&seller_id=\"nse@gmail.com\"&out_trad...
{ 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是一个字符串怎么把它分解成字典用那。
我封装了一个方法可以用
/** * 支付宝返回字段解析 * * @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开发支付宝支付成功返回字符串的处理操作,希望对大家有所帮助
上一篇: Android小米推送简单使用方法
下一篇: java设计模式之建造者模式学习