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

2018-04-18  本文已影响0人  斌小狼

前言

最近集成了支付宝,遇到了不少坑,留此纪念。
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'

问题1

解决:在桥文件中,导入

import <Foundation/Foundation.h>

import <UIKit/UIKit.h>

如果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'

问题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"

问题4

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

问题5

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

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

解决:

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

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

上一篇 下一篇

猜你喜欢

热点阅读