您的位置:首页 > 移动开发 > IOS开发

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

2017-07-30 14:43 357 查看
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);
}];
}


最后,再说一点,不要自己拼接订单,切记。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: