最近开发用到环迅支付,版本号是1.0.0的。
直接进入主题:
开发看文档就可以,值得注意的是会遇到几个问题。
1.第三方HBRSAHandler拖进项目会爆错。
解决方法:在Build Settings -> Header Search Paths 地方双击,添加以下一行文字(具体路径根据实际情况写):
"$(SRCROOT)/IPS/ADD/HBRSAHandler/openssl/include"
2.然后会爆一个bitcode的错。
解决方法:在Build Settings -> Enable Bitcode 地方设置为NO;
3.运行发现可以调用环迅,但是支付不了。
这是因为环迅的AFNetworking跟我的不一样,我的是cocoapods导入的,然后就得改cocoapods里面的AFURLResponseSerialization.m文件,代码如下:
@implementation AFJSONResponseSerializer
+ (instancetype)serializer {
return [self serializerWithReadingOptions:(NSJSONReadingOptions)0];
}
+ (instancetype)serializerWithReadingOptions:(NSJSONReadingOptions)readingOptions {
AFJSONResponseSerializer *serializer = [[self alloc] init];
serializer.readingOptions = readingOptions;
return serializer;
}
- (instancetype)init {
self = [super init];
if (!self) {
return nil;
}
// self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];
self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"charset=UTF-8", nil];
return self;
}
其实就是找到AFJSONResponseSerializer里面的
self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];
注释掉并改成:
self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"charset=UTF-8", nil];
因为环迅sdk的请求是要用到@"text/html",@"charset=UTF-8"这两种的,而本身AFNetworking是没有需要外部手动添加到请求头到,但由于sdk里面的代码改不了,所以只能在AFNetworking里改了,估计后期环迅会修复这个bug。改AFNetworking的时候会问你解不解锁,选Unlock就可以了。
再运行就可以了。
(没提及的按开发文档内容写就好了!)
网友评论