android集成支付宝坑,集成支付宝SDK遇到的坑

一、首先我先把集成过程说一下。

小编想说的话:支付宝是我做支付中觉得坑最多的一个,各种编译不过,各种出问题。

废话不多说,进入主题:

1.首先当前是下载官方SDK啦,当前你也可以通过cocopods进行导入

1.1 官方下载地址文档

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

fb71fbe5d97b252b1e99679c98309d4e.png

Paste_Image.png

1.2 cocopods导入

pod ‘AliPay‘, ‘~> 2.1.2‘

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

12b8f4efcc5f9e0bc1938927cd65c408.png

系统依赖库.png

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

26aae89396a6d96dfb2ded1b91506925.png

Paste_Image.png

导入完毕之后还需要设置下路径以免出现问题

User Header Search Paths

把上面的路径拖到里面即可。

或者使用 $(SRCROOT)/项目名称/SDK名称 也是可行的。

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

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

1.https

b2140000ecf381c7d3a9ea6a91db3a1f.png

Paste_Image.png

2.白名单

5ee024ad714f0c22adfa0358c650ac75.png

Paste_Image.png

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

eade0b12da99831c547b5660d296af00.png

Paste_Image.png

参数说明:

payOrder: 很明显是关于订单的信息

1.重点1

在demo 中 我们会看到如下一句代码

NSString *orderSpec = [order description];

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

2.重点 2

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

id 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:

91faf44cfcb46d3a3fcd213715f5f2c7.png

Paste_Image.png

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

import

import

错误 2

18b725a307f2fd25e943537e926316ba.png

Paste_Image.png

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

解决方案:

在官方demo 中 有两个文件

libcrypto.a

libssl.a

将两个文件放在你的项目中即可。

错误 3

43d77424cd239b44071a385ecc400211.png

Paste_Image.png

解决方案:

你少加了系统库哦

加上CoreMotion.framework 即可

错误 4

c4200823a5c43d271e9edaffe390dcea.png

Paste_Image.png

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

解决方案: 将他需要的文件都放在一个文件夹中,并且

Header Search Path添加路径.

直接将项目中的相应文件拖入即可.也可以$(SRCROOT)/文件路径.

错误 5

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

8aeea31ac8c6aeaffd623863883f72fe.png

Paste_Image.png

解决方案: bitcode 设置为NO

错误 6

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

328ac4127633676040bfef296448fffe.png

Paste_Image.png

我只知道如何解决。

哈哈哈。。。。

找到 Always Search User Paths 设置为YES 即可。 是不是很神奇。

说到这里我需要介绍下

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

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

错误 7

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

5265111774d5a10e1e6a7f32ebdffbbb.png

Paste_Image.png

陆续更细中......

文/慢热先生丶Cc(简书作者)

原文链接:http://www.jianshu.com/p/16c2215ea37a

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值