行业动态
支付宝的SDK是我目前用过的所有第三方SDK中最难用的一个了
2021-02-20

温/庞华华(建树的作者)

原始链接:

版权归作者所有,请联系作者以获得转载授权,并标记为“短书的作者”。

出乎意料的是,在我使用的所有第三方SDK中,支付宝的SDK是最难使用的。

下载

首先,您必须努力找到此SDK。该SDK现在已重命名为“移动支付集成开发套件”,下载页面位于“请单击此处以下载集成开发套件”

百度和Googlep在支付宝开放平台中排名第一。内部的SDK已经是2年前的版本,并且不支持64位体系结构。

文档

压缩包中有两个相关文档:

“支付宝钱包支付界面开发套件2. 0标准版.pdf”

“支付宝钱包支付界面开发套件2. 0标准版访问和使用规则.pdf”

IOS相关内容主要可以参考第一个文档。第二个文档的名称与其中写的名称不同。内容实际上是附录;该文档涉及多个平台,内容有点混乱。首先,让我们解释一下SDK的总体过程和操作方法,以便您可以在文档中找到相应的内容。

过程

第一份文档“支付宝钱包支付接口开发套件2. 0标准版.pdf”的摘录

业务流程图

业务流程图

图片中的“商家客户”是我们的IOS客户需要执行的操作:

在调用支付宝付款界面之前,我们还需要先生成一个订单。如文档中所述ios开发 支付宝sdk,此步骤也可以在客户端执行,但是此订单也可以在服务器端生成(在图片中,支付宝将在付款成功后通知服务器,因此如果订单是在服务器上生成的订单,您可以控制所有订单,这样会更加安全):

实际上ios开发 支付宝sdk,对于企业来说,这些步骤就足够了,但是存在安全问题。您绝对不希望截取和修改收到的付款结果。因此,在生成订单和处理付款结果时需要这样做。进行安全检查:

在生成订单时对数据签名,并在收到付款结果时验证数据,以检查数据是否被篡改。

支付宝目前仅支持RSA加密以进行签名验证。

除了加密和解密外,RSA加密算法还可用于签名验证。

简而言之,RSA将生成一个私钥和一个公钥。您应该单独保留私钥,然后才能分发公钥。

进行签名验证时,可以使用私钥对需要传输的数据进行签名和加密,生成签名值,然后分发数据,接收者使用公钥验证签名值。如果它们一致,则认为数据没有被篡改。

具体来说,支付宝使用RSA进行签名验证,也就是说,在生成订单时,它需要使用私钥来生成签名值;在处理返回的付款结果时,需要使用公钥来验证返回的结果是否已被篡改。

有关特定值,如何生成签名以及哪些值是大多数签名验证,您可以在第一个文档中找到它们。稍后我将简要提及它们,但以本文或惯例为准。

集成

过程明确后,很容易理解如何集成。

付费SDK

如果您只需要发送订单并处理付款退货结果,只需添加AlipaySDK.bundle和AlipaySDK.framework。

吐槽又来了。与当前版本相比,以前使用的旧版本不仅更改了类名,而且现在将原来的类方法更改为新版本中的单例。 。真是反复无常。如果这是任何小型制造商的SDK,则可能会放弃它。

发送订单的方法:

- (void)payOrder:(NSString *)orderStr
      fromScheme:(NSString *)schemeStr
        callback:(CompletionBlock)completionBlock;

支付宝的SDK仅提供一种处理返回结果的方法,这与其他第三方SDK提供了处理openURL的方法不同,因此您需要找到一种通过DEMO或在第二个文档中处理openURL的方法:

if ([url.host isEqualToString:@"safepay"]) {
[[AlipaySDK defaultService] processOrderWithPaymentResult:url
standbyCallback:^(NSDictionary *resultDic) {
          NSLog(@"result = %@",resultDic);
}]; }


393701618