swift4.0 集成支付宝遇到的坑

前言

最近集成了支付宝,遇到了不少坑,留此纪念。
NO.1
在支付宝官方demo 中整理出来你需要用到的文件

swift4.0 集成支付宝遇到的坑_第1张图片
整理准备拖拽

NO.2
拖入你的项目中,并添加相应的依赖库。在"target"->"Link Binary With Libraries"中
swift4.0 集成支付宝遇到的坑_第2张图片
依赖库文件

没画框的是其他功能的依赖库
NO.3
XL-Bridging-Header.h 桥文件添加:

import "APOrderInfo.h"

import "APAuthInfo.h"

import

NO.4
遇到的报错解决方案:
如果1:unknown type name 'NSString'

swift4.0 集成支付宝遇到的坑_第3张图片
问题1

解决:在桥文件中,导入

import

import

如果2:"openssl/asn1.h"file not fount

问题2

解决:出现类似找不到文件的情况,Targets->Build Settings->Header Search Path添加路径.
双击出提示框,直接将我们刚刚拖进项目的文件夹拖入框中即可
如果3: no matching function for call to 'PEM_read_bio_RSAPrivateKey'

swift4.0 集成支付宝遇到的坑_第4张图片
问题3

解决:将 RSA *rsa_private = PEM_read_bio_RSAPrivateKey(bio_private, NULL, NULL, "");
改为:RSA *rsa_private = PEM_read_bio_RSAPrivateKey(bio_private, NULL, NULL, NULL);

如果4:No matching function for call to"EVP_EncodeBlock"

swift4.0 集成支付宝遇到的坑_第5张图片
问题4

解决: 将int outputLength = EVP_EncodeBlock(outputBuffer, [signature bytes], signatureLength);
改为:int outputLength = EVP_EncodeBlock(outputBuffer, (unsigned char *)[signature bytes], signatureLength);
如果5:

swift4.0 集成支付宝遇到的坑_第6张图片
问题5

解决: 刚才导入的两个.a文件重新导入一下

如果6:调用了支付宝:显示系统繁忙,请稍后再试(ALI40247)

解决:

检查自己运用的是RSA还是RSA2
order.sign_type = 你运用的类型
可以在这个网站查询你的支付状态
https://openmonitor.alipay.com/acceptance/cloudparse.htm
并在他的下方有可能出现问题的方位指出

持续更新中、直至支付功能完全完成

你可能感兴趣的:(swift4.0 集成支付宝遇到的坑)