支付宝遇到的坑和解决方案

这两天在搞支付宝相关的支付,在此也是深受各种坑的折磨首先在集成支付 宝SDK时就各种的错误,同时也感受到了支付宝开放平台对这一块的官方文档做的也有所欠妥,为什么说欠妥呢,是因为他让我们这些开发者找里面的一些相关东 西,不怎么好找,而且一些紧要的对于我们来说特别重要的东西,找起来很费劲,特别是对于新手而言,可能都找不到在那块下载相应地SDK。但总的来说官方文 档里面的内容还是挺赞的,只是希望他们能够改善不足的地方,这样就完美无缺了。随后在该文章中加上如何使用支付宝。

首先我先说一下他的这个SDK从哪里下载,在这里给你们链接,在这里你可以选择你选要的支付方式,根据自己的个人需求开发来就行:支付宝开放平台 。我这里选择的是移动支付,点击移动支付进入相关页面,直接给你们链接移动支付。进入页面后你会看到移动支付后面就是 SDK下载,点击即可直接下载,解压iOS的官方的demol就ok了。官方的详细流程和一些重要的问题解决都在他那个集成流程详解中(很重要的哦)!!!

接下来说说怎么集成SDK并加入到我们的项目中,步骤如下照着来不会有错的。

1.在我们的桌面上新建一个文件夹,我在这里命名为AliPaySDK(自己命名即可);

2.将demol文件夹中的以下文件拷贝到我们刚刚新建的文件夹里面,并导入到我们的项目工程中;

AlipaySDK.bundle
AlipaySDK.framework
  • 1
  • 2


3.打开我们的项目工程添加相应地库文件,在Build Phases选项卡的Link Binary With Libraries中,增加以下依赖;

其中,需要注意的是:
    如果是Xcode 7.0之后的版本,需要添加libc++.tdb,libz.tdb;
    如果是Xcode 7.0之前的版本,需要添加libc++.dylib,libz.dylib;
  • 1
  • 2
  • 3

4.编译项目,看是否有错误,没错误即可调用相关的方法进行实现,如有错误,解决错误。下面是各种错误的说明以及解决法。

(1)我的错误描述,该错误在base64文件中;

Cannot find interface declaration for ‘NSObject‘, superclass of ‘Base64‘
  • 1

解决方法很简单,就是在bast64.m文件中添加头文件:

#import <Foundation/Foundation.h>
(问了好多人也不知道怎么回事,昨晚自己回去又细看里文档才解决)
  • 1
  • 2

(2)错误在openssl_wrapper.h文件中,没有该类型的属性;

解决方法在openssl_wrapper.m文件添加头文件:

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
  • 1
  • 2

(3)错误’openssl/asn1.h‘ file not found;

解决方法:Targets->Build Settings->Header SearchPath中添加我们刚新建的AliPaySDK文件夹的路径(拖拽此文件夹至输入框即可)

(4)该错误是加入到我的项目工程里面报的错误;

解决方法:在Build Phases选项卡的Link Binary With Libraries中,增加以下依赖;

我的热门文章

相关博文

时间: 2024-12-17 12:56:16

支付宝遇到的坑和解决方案的相关文章

iOS开发:集成支付宝(遇见的坑和便捷撸代码)

开发iOS最重要的就是支付了,天朝之内最常用的就是支付宝了,下面就以自己的经历说明如何集成支付宝+遇见的坑. 首先,集成支付宝最好别使用Cocoapods,很多人都说使用起来很方便,可是我每次只要使用Cocoapods导入支付宝SDK,总是出现各种莫名其妙的错误,并且还每次都不一样,最终,我只能手动导入. 其实可以使用ping++和其他更为方便.如 http://winann.blog.51cto.com/4424329/1601654 https://www.pingxx.com/ 以自己集成

安装CentOS 7.4 可能会出现的坑以及解决方案

安装CentOS 7.4 可能会出现的坑以及解决方案 (解决方法不唯一,如果行不通的话emmmm~~, 百度会啥你会啥~~) 坑.0X01 解决: 退出虚拟机,以管理员权限运行 坑.0X02 解决: 物理机的CPU不支持虚拟64位虚拟化,有些CPU是直接不支持,有些可以虚拟64位CPU,只需要在bios里面开启虚拟化功能即可. 坑.0X03 解决:  找不到光盘,重新选择正确的镜像光盘 坑.0X04  设置linux系统网卡时无法连接网络??? 解决1: 可能是物理机(windows)里相关服务

webpack渐入佳境系列一:webpack环境配置与打包基础【附带各种 &quot;坑&quot; 与解决方案!持续更新中...】

首先介绍传统模块化开发的主流方案: 1.基与CMD的sea.js,玉伯提出的解决方案,据说原来京东团队在使用.用时才定义,就近加载.最近在浏览seajs官方文档时发现seajs的域名已经在转卖,惊恐万分之余又想起了那句话,国内团队开发的技术,不是十全九美的最好不要用.国内高强度的生活节奏与压力使得日常维护变得很吃力.(想到这里,不禁为vue捏了一把汗,不过还好vue的前景非常光明!). 2.基于AMD的require.js,之前在用.提前声明与定义.国外团队维护. 3.基于commonJS的we

支付宝扫码支付的解决方案!及扫描枪的选择!

应用背景: 移动互联网时代的发展是不可逆的,未来大众的消费习惯都在移动端.如何利用条码,连接消费者和商户,并通过手机完成支付,使整个支付过程更加便捷.更加灵活.支付宝以超强的创新能力和市场开拓能力,成为条码支付的领导者.支付宝在推广的过程中急需将想法落地,经过反复测试及针对多家厂家的设备进行对比,最终支付宝选择了万酷的VS5612及VS5621G两款设备,实现了条码支付的解决方案. 解决方案: 条码支付是用户在线下购买完商品进行结算时,商家通过万酷条码扫描枪对用户手机上的付款码进行扫描,从而完成

cmd合并打包、存在的坑、解决方案及注意事项

我想要的打包目标是:将模块合并,同时实现只需要简单修改的配置就能在发布版和调试版之间切换. 我的CMD模块文件 src/modules/module-1.js src/modules/module-2.js //src/modules/module-all.js src/modules/startup.js 我想要的目标文件是 dist/modules/module-all.js dist/modules/startup.js 首页文件 index.html <script type="t

Entity Framework中使用DbCompiledModel中遇到的坑和解决方案

前段时间,在公司做项目时,引入Entity Framework Code First的方法. 我们公司的软件为SaaS结构,有N个企业注册,其中SQL Server中有一张表为t_User_企业注册号,比如第1000个来注册的企业,为它生成t_User_1000这张数据表. 这种方式下,如何生成User对象跟数据表的对应关系呢?直接在OnModelCreating里面直接ToTable来绑定? 如果稍懂点Entity Framework的实现细节,这种方式实现有一个很大的问题,就是OnModel

xmlreader与xmlwriter里的几个坑与解决方案

加载超过100M的xml文件时(可能不是很常见),XmlDocument这种全部加载到内存里的模式就有点不友好了,耗时长.内存高. 这时用xmlreader就会有自行车换超跑的感觉,但其间遇到几个坑,记录一下. 先看源码,包括dom和sax两种模式的读取和写入 DOM模式: 1 /// <summary> 2 /// dom模式创建xml文件 3 /// </summary> 4 /// <param name="path"></param&g

工作中Hadoop,Spark,Phoenix,Impala 集群中遇到坑及解决方案

1.HDFS 修复 问题描述:其他部门在yarn平台上跑spark 程序错误的生成了海量的不到100K的小文件,导致namenode压力过大,其中一个namenode宕机后,没有及时发现 使得edits文件大量积累,在namenode1宕机后,namenode2 随后在凌晨1点也宕机. 原因分析:NameNode 内存设置太低,之前内存设置在1G,后调高namenode 堆内存,调高到18G.编写程序的人员不应该生成海量的小文件落地HDFS,大量的小文件不适合存储在HDFS上. 问题解决方案:提

做webApp遇到的一些坑及解决方案

1.问题:手机端click事件会有大约300ms的延迟 原因:手机端事件touchstart-->touchmove-->touchend or touchcancel-->click,因为在touch事件触发之后,浏览器要判断用户是否会做出双击屏幕的操作,所以会等待300ms来判断,再做出是否触发click事件的处理,所以就会有300ms的延迟 解决方法:使用touch事件来代替click事件,如zepto.js的tap事件和fastClick来解决. 2.问题:在部分机型下(如小米4