iOS开发- 支付宝2017.7.28为止最新SDK引入后直接报错和AL138173

本文解决了支付宝SDK在iOS集成过程中遇到的导入问题,并详细分析了AL138173错误背后的签名处理流程,提供了具体的解决方案。
1.根据支付宝提供的文档接入SDK后,运行时直接报错,在开发文档对应iOS最下方有
swift引入的问题说明,需要引入#import <UIKit/UIKit.h>,Object-C情况下也报
了错,同样的,在报错文件中引入#import <UIKit/UIKit.h>即可。
2.AL138173,由于现在的支付宝已经简化到只需要几句代码就能搞定的地步,订单签名的拼接都不需要客户端来完成,而是放到后端来处理。所以,当出现这种错误的时候,一定是签名的问题,要么是后台在签名的时候报错,要么是签名在前台做处理时除了某些问题:
1)需要对签名进行转码,有些特殊字符在url中没有转码UTF-8就会报这种错,个人认为,没有哪个后台会把不符合url规范的字符串传给前台,所以这种情况比较少见,如果真碰上了,要么自己转码,要么让服务端转码。


2)对订单字符串进行了二次拼接
//如下叹号处为比较危险的地方,特别需要注意后端传过来是已经凭借过的订单字符串信息还是仅仅只有签名,这里很容易被误导。
 if (signedString != nil) {
        //应用注册scheme,在AliSDKDemo-Info.plist定义URL types
        NSString *appScheme = @"xxxxxx";

        //!!!!!!!! NOTE: 将签名成功字符串格式化为订单字符串,请严格按照该格式
        NSString *orderString = [NSString stringWithFormat:@"%@&sign=%@",orderInfoEncoded, signedString];

        // NOTE: 调用支付结果开始支付
        [[AlipaySDK defaultService] payOrder:signedString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
            NSLog(@"reslut = %@",resultDic);
        }];
    }

最后,再说一点,不要自己拼接订单,切记。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodingFire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值