前言
最近集成了支付宝,遇到了不少坑,留此纪念。
NO.1
在支付宝官方demo 中整理出来你需要用到的文件
NO.2
拖入你的项目中,并添加相应的依赖库。在"target"->"Link Binary With Libraries"中
没画框的是其他功能的依赖库😓
NO.3
XL-Bridging-Header.h 桥文件添加:
import "APOrderInfo.h"
import "APAuthInfo.h"
import <AlipaySDK/AlipaySDK.h>
NO.4
遇到的报错解决方案:
如果1:unknown type name 'NSString'
解决:在桥文件中,导入
import <Foundation/Foundation.h>
import <UIKit/UIKit.h>
如果2:"openssl/asn1.h"file not fount
解决:出现类似找不到文件的情况,Targets->Build Settings->Header Search Path添加路径.
双击出提示框,直接将我们刚刚拖进项目的文件夹拖入框中即可
如果3: no matching function for call to 'PEM_read_bio_RSAPrivateKey'
解决:将 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"
解决: 将int outputLength = EVP_EncodeBlock(outputBuffer, [signature bytes], signatureLength);
改为:int outputLength = EVP_EncodeBlock(outputBuffer, (unsigned char *)[signature bytes], signatureLength);
如果5:
解决: 刚才导入的两个.a文件重新导入一下
如果6:调用了支付宝:显示系统繁忙,请稍后再试(ALI40247)
解决:
检查自己运用的是RSA还是RSA2
order.sign_type = 你运用的类型
可以在这个网站查询你的支付状态
https://openmonitor.alipay.com/acceptance/cloudparse.htm
并在他的下方有可能出现问题的方位指出
持续更新中、直至支付功能完全完成