项目中再次用到支付宝,去年有集成一次,order的信息是后台返回,而且是去年的SDK,比较顺利。今年再次集成,遇到了一点坑,一步一步解决了,故记录一下。
1.集成问题。
集成的时候 有很多坑。先看下你的账户签约的是哪个版本。然后下下来支付宝的demo。拉入SDK,编译一下。
报错提示:openssl/asn1.h file not found
解决方法:openssl路径不对。在header search path 添加当前的路径, 注意,支付宝的文档上写的是“对“Header Search Paths”增加头文件路径:$(SRCROOT)/项目名称” 但其实一般都不会放在项目的最外面,中间还是隔着很多文件夹,所以建议直接点开本地文件夹所在地址长按拖入header search path,这样路径就不会有问题了。
错误信息:"_EVP_DecodeBlock", referenced from:_dataFromBase64String in openssl_wrapper.o等
这种报错,这个的原因 就是少拖入了 libcrypto.a 和 libssl.a两个文件,在支付宝的DEMO下 就可以找到,拖入就行。
2.privateKey的问题。
报错提示:app支付报错ALI40247。
解决方法:首先是看下后端是什么语言写的,我这边的是JAVA,key必须用pkcs8格式的,有些可能需要RSA格式的。之前报错的时候,网上有看到修改 openssl_wrapper这个类中的 @“-----BEGIN PRIVATE KEY-----\n”@“\n-----END PRIVATE KEY-----”这两个位置,修改成为@“-----BEGIN RSA PRIVATE KEY-----\n”,如果有这个问题可以试试,我这边没有用到。
3.已经可以支付,点了确定支付以后提示:暂时无法获取到订单信息 请稍后重试。
出现这个的原因就是你的账户没有签约你集成的版本的SDK,我这边是账号签约的SDK1.X但是项目里面的SDK是2.X的版本。2.X可以直接在官网找到,附上1.X的链接https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1
一直听说支付宝的第三方支付SDK比较多坑,这次终于遇到了。过程中试了很多,比如更换公钥秘钥等等。所以记录下来,希望以后自己再遇到能解决,也希望能帮助到遇到相同问题的同学。然后马上要集成微信了。希望微信不会遇到这么多的坑。如果有问题 也会记录下来,方便遇到的小伙伴解决问题。