上篇说了微信支付,这篇说支付宝支付,支付宝的官方文档比较给力需要细细阅读以防多走弯路,一样的支付宝支付需要申请支付宝商户,然后生成对应的APP_ID,公钥,私钥之类的东西,支付宝的公私钥生成过程对新手来说比较麻烦,这个时候你可以查看网上的教程以及官方的文档,另外实在不行就问支付宝的技术客服,客服们都很细心很赞的。接下来说具体过程:
1.搞定商家(支付宝商家服务平台)的信息,申请的时候记得APP中导入的SDK是支付宝的快捷支付(现在可能是移动支付,反正不要网页支付)权限,然后设置公司账户的公私钥(实在不行就问客服,微信没有客服支付宝有一定要抓住机会,因为你是小白),之后把这些信息保存下来在工程里单独建一个plist文件或者.h文件来保存下,防止误删(因为支付宝的私钥很长)。然后,下载支付宝SDK。
2.支付宝的SDK导入过程坑比微信的要多,但是不要怕,解决方案网上的也多。下面按照报错过程说一下。
(1)导入支付宝所需要的类库,看自己的工程,如果有的就不要再导入了,依次是AlipaySDK.bundle, AlipaySDK.framework, libcrypto.a, libssl.a, SystemConfiguration.framework, QuartzCore.framework, libz.dylib, CoreText.framework, CoreTelephony.framework, Foundation.framework, CoreGraphics.framework, UIKit.framework;这些类库单独建一个Frameworks文件夹放入不至于工程太乱。
(2)导入openssl,util文件夹和Order,APAuthV2Info类,这个时候就会出现一大堆红点,一个一个来;首先是base64类报错,cannot find interface decalation for “NSObject”
这个错的意思是识别不了NSObject,连最基本的类都识别不了,这说明没有导入UIKit和Fountion,同样的openssl_wrapper这个类中出现了很多的不能识别NSString,NSDate等都是这个原因,但是人家的demo里面为什么不会报错呢,因为人家的工程里地pch文件已经导入了这两个框架,解决办法就是要么你自己看哪个类需要就导入,要么就是也建一个pch文件导入这两个,建议后者不会的百度怎么创建pch文件。
(3)还剩最后一个红点rsa.h找不到openssl/asn1.h乍一看是不是又少导入了什么的文件,但是你会发现openssl文件夹和asn1.h都有,这个时候就是文件的路径有问题,需要在buildsettings的searchpaths里面修改路径,这个时候添加以下路径如图所示