集成支付宝SDK遇到的坑

一、首先我先把集成过程说一下。
小编想说的话:支付宝是我做支付中觉得坑最多的一个,各种编译不过,各种出问题。

废话不多说,进入主题:
1.首先当前是下载官方SDK啦,当前你也可以通过cocopods进行导入

1.1 官方下载地址文档

https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.aL2Pps&treeId=59&articleId=103676&docType=1

将下图两个文件导入您的项目中 (支付宝SDK)

Paste_Image.png

1.2 cocopods导入

pod ‘AliPay‘, ‘~> 2.1.2‘

2.若通过cocopods导入直接跳过此步 -- 导入系统库

系统依赖库.png

  1. 在项目中新建一个文件夹存放SDK 把官方demo 的所需的文件统统拷贝过来,如下图 其中AlipaySDK.bundle AlipaySDK.FRAMEWORK 根据你是否cocopods集成选择导入。

Paste_Image.png

导入完毕之后还需要设置下路径以免出现问题
User Header Search Paths
把上面的路径拖到里面即可。
或者使用 $(SRCROOT)/项目名称/SDK名称 也是可行的。

4.使用支付宝 需要配置 URL type 在info中直接配置即可

5.对了,还有一个就是需要支持iOS9 哦
1.https

Paste_Image.png

2.白名单

Paste_Image.png

走到这里基本上的配置就算完成了,那么我们该如何使用呢? 很简单支付宝有提供一个方法 我们只需要把所需要的参数给传递过去即可。下面为基本调用过程

Paste_Image.png

参数说明:
payOrder: 很明显是关于订单的信息
1.重点1
在demo 中 我们会看到如下一句代码

NSString *orderSpec = [order description];

意思是说 将商品信息拼接成字符串 这个拼接的过程他这个方法里已经封装直接调用即可。

2.重点 2
// 获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode

id<DataSigner> signer = CreateRSADataSigner(@"您的私匙");
NSString *signedString = [signer signString:@"重点1 的商品字符串"];

3.最后我们将所有内容拼接下 传递给支付宝SDK

orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
@"重点1 的商品字符串", signedString, @"RSA"];

appScheme:应用注册scheme,在AlixPayDemo-Info.plist定义URL types

综合上述 已经完成了大部分的工作,现在咱们运行看看效果。。。

运行中。。。。。

等待中。。。。。

卧槽,这不科学,报错了,这个时候我的内心是奔溃的。。。。

咋办??????

不要着急我们一个一个错误来看。

-
-
-
-
-

错误 1:

Paste_Image.png

解决方案 我们只要添加头文件 (我是在pch 文件中加入)

import <Foundation/Foundation.h>

import <UIKit/UIKit.h>

错误 2

Paste_Image.png

如果是按照上述我描述的步骤 是不会出现这个问题的,但是还是要说一下,万一遇到了呢?

解决方案:
在官方demo 中 有两个文件
libcrypto.a
libssl.a
将两个文件放在你的项目中即可。

错误 3

Paste_Image.png

解决方案:
你少加了系统库哦
加上CoreMotion.framework 即可

错误 4

Paste_Image.png

尼玛,明明有 你特么的说没有。这个问题其实就是他找不到你的这个文件,按照我之前的流程也是不会出现这个问题的。

解决方案: 将他需要的文件都放在一个文件夹中,并且
Header Search Path添加路径.
直接将项目中的相应文件拖入即可.也可以$(SRCROOT)/文件路径.

错误 5

可能会报类似错误 大概就是这个第三方不支持 bitcode Xcode 7 默认为YES

Paste_Image.png

解决方案: bitcode 设置为NO

错误 6

这个错误不知道为什么会发生? 请大神指导。。。

Paste_Image.png

我只知道如何解决。
哈哈哈。。。。
找到 Always Search User Paths 设置为YES 即可。 是不是很神奇。
说到这里我需要介绍下

`#include“file.h”: 先搜索当前工作目录,如果没有,再去搜索库,库没有再搜索资源库;

当#include<file.h>:编译器先从标准库路径开始搜索,如果没再搜索资源库目录,最好搜索当前工作目录。

错误 7

在设置 应用注册scheme 时 切勿使用与支付宝系统重复命名,否则无法调用sdk。

Paste_Image.png

陆续更细中......

文/慢热先生丶Cc(简书作者)
原文链接:http://www.jianshu.com/p/16c2215ea37a
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

时间: 2024-08-24 11:36:59

集成支付宝SDK遇到的坑的相关文章

iOS 之(集成支付宝SDK大坑总结)

其实集成支付宝相对于集成微信支付来说,支付宝算是简单的了,后续有空再去研究微信支付,现目前先总结一下集成支付宝所遇到的坑,其实支付宝的坑也不算太多,细算下来大概5-6个左右,但是其报错方式有点恶心,不花一点时间还是琢磨不透,我之前第一次集成很顺利,但是第二次放进项目里就被报错搞了大半天,现在想想还是平时多做点总结的比较好. 详细的集成流程就不说了,简单大致提一下 首先第一步要去与支付宝签约,获得 商户ID也就是合作者身份,之后就开始下载官方文档与示例damo 了. 一步步按着官方文档来就行了 添

集成支付宝SDK时错误的解决办法

1.打开Demo中的错误 这是路径错误导致 解决办法:在Build Settings 中找到 Library Search Paths ,去掉其中的 /// 2.自己集成支付宝SDK时的错误 这个也是路径错误, 解决办法:在自己工程文件夹里建一个文件夹,随便起什么名字.把支付宝所需要的东西都拷贝进去,然后add files,然后找到TARGETS-Build Settings,在里面找到如下位置 把自己新建的文件夹拖动到这个框里面,再次运行就OK了,如果不行可以再多试几次 3.跳转后出现“系统繁

集成支付宝SDK流程

5.2 SDK集成流程 5.2.1 iOS 解压接口压缩文件(文件名是 WS_MOBILE_PAY_SDK_BASE.zip),找到iOS的压缩文件(文件名是支付宝移动支付SDK 标准版(iOS).zip). 1. 导入代码 步骤1:  启动IDE(如Xcode),把iOS包中的压缩文件中以下文件拷贝到项目文件夹下, 并导入到项目工程中. AlipaySDK.bundle AlipaySDK.framework 步骤2:  在需要调用AlipaySDK的文件中,增加头文件引用. #import

iOS开发——高级篇——如何集成支付宝SDK

一.什么是支付宝 第三方支付平台 和内购非常相似内购是用户将钱付款给苹果,之后苹果分成给商户支付宝是用户将钱付款给支付宝,之后支付宝将钱转入我们的账户 使用支付宝前提购买的物品必须是和应用程序无关的.比如:团购卷/衣服/电子产品如果和应用程序有关,必须采用内购(否则不允许上架).比如:会员/游戏道具 二.集成支付宝 现在不少app内都集成了支付宝功能 使用支付宝进行一个完整的支付功能,大致有以下步骤:向支付宝申请, 与支付宝签约,获得商户ID(partner)和账号ID(seller)和私钥(p

关于集成支付宝SDK的开发

下载 首先,你要想找到这个SDK,都得费点功夫.现在的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 "请点此下载集成开发包" Baidu和Googlep排在前面的支付宝开放平台,里面的SDK已经是2年前的版本了,而且还不支持64位架构. 文档 压缩包里有两个相关文档 : <支付宝钱包支付接口开发包2.0标准版.pdf> <支付宝钱包支付接口开发包2.0标准版接入与使用规则.pdf> iOS相关内容可以主要看第一个文档,第二个文档名字和里面写的不一样,内

iOS支付宝SDK回调那坑

支付宝钱包支付接口开发包2.0标准版(iOS 2.2.1) ,回调不出来,demo给出的方法是: - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { if ([url.host isEqualToString:@"safepay"]) { [[Ali

支付宝sdk集成问题汇总解决

集成支付宝SDK 第一步:按照支付宝集成流程操作. 第二步: 但是按照官方文档还是有问题  :  找不到<openssl/asn1.h>文件 自己集成支付宝SDK时的错误 2.缺少 #include <openssl/asn1.h> 这个是路径错误, 解决方法如下:在你的Xcode里的header search paths 里添加支付宝SDK(openssl的路径):格式如下  $(PROJECT_DIR)/文件夹名         (这里说一下,直接点击openssl,然后sho

Android集成支付宝的坑

Android在集成支付宝sdk的时候, 如果有安装支付宝,则启动支付宝app进行支付: 如果没有安装,则启动 H5PayActivity 进行支付. 记得在AndroidManifest里面配置: <activity android:name="com.alipay.sdk.app.H5PayActivity" android:configChanges="orientation|keyboardHidden|navigation|screenSize" a

支付宝SDK的使用说明

现在电商类的应用与日俱增,直接导致了我们需要集成支付宝SDK的功能,从而完成能实现在线支付,手机支付的功能.说到在线支付,手机支付,这里还是有区别的,在线支付,一般指的是用UIWebView显示用于支付的网页,说实话本人感觉这样的用户体验很不好. 而说到手机支付,现在主要指的就是,用各银行的网银支付,支付宝,财付通等等.相比在线支付,手机支付的用户体验还是比较好的,今天我想说的就是支付宝SDK的使用说明.至于剩下的几种,我会后续博客中补上. 首先给大家介绍一下,支付宝官方SDK使用步骤 这里边其