-
- 首先需要支付宝商家服务平台上进行我们的产品签约,并通过审核,然后根据步骤得到PID key等信息
- 在项目中集成支付宝SDK
- 商户客户端:构造订单数据并签名,然后向 《支付SDK客户端》发送请求数据
- 支付SDK客户端:构造业务数据并发送给《支付SDK服务端》
- 支付SDK服务端:完成支付并返回《支付SDK客户端》支付结果,然后异步发送支付通知给《商户服务端》,《商户服务端》给《支付SDK服务端》发送响应数据
- 支付SDK客户端:同步并返回《商户客户端》支付结果
- 商户客户端:对响应的数据进行处理
- 支付的时候主要用到的方法是
- -(void)payOrder:(NSString *)orderStr fromScheme:(NSString *)schemeStr callback:(CompletionBlock)completionBlock;
- 这个方法的作用就是请求支付并通过回调返回结果,在用的时候我们需要传入orderStr等参数,而orferStr需要我们自己去拼接成文档中要求的格式,我们可以直接复制demo中的这部分即可
- 在桌面上创建一个空文件夹,把用到的文件全部拷贝到里面
- 在这里,我们可以使用demo中的Order,这样我们能很方便的创建订单(需要的时候可以写一个Order的子类)
- 一定不要忘了libcrypto.a和libssl.a这两个.a文件
- 接下来找到TARGETS—>build Settings—>Search Paths—>Header Search Parhs下:把我们刚才拖到项目中的文件夹选中,然后show in Finder把文件拖到Header Search Paths中,然后编译看看是否有错误,不过可能会遇到这个错误,这个错误是Header Search Path是设置的错误,按照上述方法重新设置
- 创建我们自己的订单,我们可以看到,deno中我们发送请求的时候,有很多参数需要我们设置
- 其中有三个参数需要我们先设置:partner、seller、privateKey。这三个参数分别代表了PID(16位数字)、收款方的PID、和合作伙伴密钥RSA加密后的密钥(生成密钥的方法可以参考:http://www.itgcq.com.cn/?p=67)当我们设置好这些参数,就剩下order的参数了,即订单信息。然后我们运行的时候发现控制台打印了以下信息
这个问题是设置的密钥的格式的问题,通过以下方法可以解决
- 在RSADataSigner.m文件中 搜索代码 [result appendString:@”—–BEGIN PRIVATE KEY—–\n”]; 将其改成 [result appendString:@”—–BEGIN RSA PRIVATE KEY—–\n”];2. 在RSADataSigner.m文件中 搜索代码 [result appendString:@”\n—–END PRIVATE KEY—–“]; 将其改成 [result appendString:@”\n—–END RSA PRIVATE KEY—–“];