集成支付宝SDK遇到的坑

作者: 左先生丶丶 | 来源:发表于2016-05-01 11:23 被阅读5832次

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

废话不多说,进入主题:
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

陆续更细中......

相关文章

  • Mac android studio 集成支付宝SDK 2016

    本文为记录android 集成支付宝sdk真实步骤和遇到的坑,希望对读者有帮助。一:网页管理中心配置认真看支付宝文...

  • 集成支付宝SDK遇到的坑

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

  • xcode8 - 打包Framework

    最近工作中有需求就是把支付宝、微信等一系列支付SDK集成起来,封装一套自己的支付SDK。简单说说遇到的坑吧!!(各...

  • iOS集成支付宝和微信支付SDK

    1. 支付宝SDK集成 实现思路:1.下载支付宝SDK2.集成SDK到项目中,参考官方集成文档。3.调起支付宝SD...

  • iOS 集成支付宝sdk简单教程以及遇到的坑(2)

    一切阅读,皆是误读。 -----安伯托 · 艾柯 想起来上一篇iOS 集成支付宝sdk简单教程以及遇到的坑(1)还...

  • iOS有关集成支付宝问题解决方案

    今天我将把有关iOS集成支付宝sdk中遇到的问题以及解决办法写下。我在两个项目有过集成支付宝的经历,大家都会遇到 ...

  • 2019-03-30 Android Gradle manife

    前言 最近写了一个坑爹的方便其他方集成的微信,支付宝分享SDK,其中的appid等参数,本人使用的配置化,就遇到了...

  • iOS 支付宝集成流程

    iOS 集成支付宝支付 SDK下载 集成支付宝首先是去官网下载SDK https://doc.open.alipa...

  • 支付宝集成

    支付宝集成 一、相关文档 1. SDK集成流程 2. SDK下载地址 二、SDK集成流程 1. 2. 3. 自己制...

  • iOS集成支付宝/微信支付遇到的坑...

    最近在集成微信/支付宝支付,下面是集成的大体流程以及遇到的一些坑,特此记录.首先来谈下微信支付(因为集成支付宝支付...

网友评论

  • b6cc51a6911e:编译库的时候出现这个错怎么解决??
    "_SecTrustEvaluate", referenced from:
    ___44+[APURLConnectionOperation pinnedPublicKeys]_block_invoke in AlipaySDK
    -[APURLConnectionOperation connection:willSendRequestForAuthenticationChallenge:] in AlipaySDK
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
  • 秦枫桀:最大的坑就是那个openssl目录也是需要copy到自己工程,然后暴露header path的。
  • 邦_:问了下支付宝官方,貌似是说pod的方式引入会出很多问题,推荐使用手动引入
  • 不要动:写的很细
  • 10b36149b6d8:不错哦
    左先生丶丶:@香龙栀子 相互学习

本文标题:集成支付宝SDK遇到的坑

本文链接:https://www.haomeiwen.com/subject/cdgkrttx.html