支付宝支付集成指南:从签约到SDK下载与错误解决全流程

2025-01-01
来源:网络整理

实现支付宝支付的准备工作:

1.与支付宝签约,成为支付宝商家

签名完成后,支付宝会向我们提供一些必要的数据

商户编号:

账户ID:支付宝账户

签订合同需要营业执照

2. 获取支付相关的私钥和秘钥。这两件事都是为了数据安全。

以上这些事情只要合同签订成功就可以看到。

3.下载支付宝的SDK

下载地址:

以上部分是准备工作,从这里开始整合

4、下载后,打开客户端Demo—>iOS SDK Demo,解压,打开机箱,运行程序。

可能会出现错误说YES,只要搜索到它并将其更改为NO,然后清除并运行即可。

5.解压Demo中的SDK并解压以下文件

,.h,.m,Util,.a,.a,.

将这些文件放入一个文件夹中,然后将它们添加到项目中。 .h和.m这两个文件可以添加也可以不添加。

添加进去编译发现错误

5.1 添加.pch 文件。打开项目—>右键—>iOS—>—>PCH文件—>选择第一个选项—然后在新创建的PCH文件中添加#。

PCH 文件现在无法使用。您需要添加 PCH 文件。点击项目—>—>右侧搜索pref—> .0

将第二个选项后面的NO改为YES,直接复制第三个选项路径中的项目名称。

比如我这里的项目名称是:01支付宝集成

将此名称复制到路径中,双击该选项会出现一个白框,将名称粘贴到这个白框中,然后

后面是/.pch,填写完毕后输入应该是01支付宝集成/.pch

01支付宝整合项目名称

即项目名/.pch的格式

到这里第一步就完成了

5.2 导入相应的依赖库。其中大部分不需要进口,但为了安全起见,我们全部进口。

点击支付宝的Demo,点击项目->->第三个Link即可查看官方导入的依赖库

然后我们也导入对应的依赖库,点击+号添加对应的依赖库。

注意,以后有些库的后缀名已经从libc++改过来了。到 libc++.tbd。

这里附上需要添加的依赖库的截图。

也就是说,注意不要以为添加库的时候就没有了。后缀名只是更改了。

5.3 添加对应的库后,编译时会出错,提示#This file is not 。

因为以后导入会出现问题。之前导入没有问题。只需配置一下即可。

因为在导入.a文件时,它找不到里面的头文件,也就是说它找不到.a文件中的头文件,也就意味着它找不到文件路径。如何配置呢?配置它并指定它。只是路径

点击项目->然后在右侧搜索S。双击第二个选项后,点击左下角的+号,然后填写$()/01支付宝集成/支付宝SDK。

注意

01 支付宝集成成为您的项目名称

SDK是您导入的 SDK文件夹的名称。

然后清除一个并再次运行

5.4 除了上面提到的依赖库之外,还需要一个框架,支付宝的SDK框架。在支付宝的示例程序中,有一个名为.右键show in找到这个框架,然后复制它,然后点击你项目中的支付宝SDK文件。显示,粘贴。进入目录,此时项目中不会显示这个框架,然后点击支付宝SDK文件名,右键添加文件到“”文件目录就会打开, SDK(你自己的支付宝SDK的名称)文件夹是我们刚刚导入的文件夹名称)->选择.,点击右下角的add,然后添加。当你想使用它时,只需导入头文件即可

# 你可以使用它

到这一步,就意味着支付宝已经融入到项目中了,完成!

1.使用官方Demo

需要配置的基本信息:

打开“.m”文件并编辑以下三个参数。

2.将支付宝集成到自己的项目中

1. 开始。为了方便快速开发,将.zip文件解压。和 。

将Demo中的以下文件复制到自己的工程文件夹中,并导入到工程项目中。

2. 在“链接方式”选项卡中,添加以下依赖项:

3、如果您的应用是基于9.0编译的,那么为了适应iOS 9.0中App(ATS)的HTTP限制,您需要对支付宝的请求地址进行例外处理,并在应用的相应信息中添加以下配置。列表。

4、需要支付功能的.m中

#".h"#".h"##".h"

根据您的APP,您可以修改以下参数:

3、注意事项

1.缺少头文件

如果发生这种情况,请添加:

##

消除错误

2. '/asn1.h'文件不存在

可以使用微信支付_什么APP可以用微信支付_软件可以用微信支付

解决方法如下:在你的目录下添加支付宝SDK(路径),即“ ”只需设置$()/项目名即可。

3、使用支付宝客户端支付后,无法返回原APP系统。

(1) 在.m文件中,

#

- (BOOL):( *)应用程序 :( *)网址 :( *)

[[ ]

:网址

:^(*){

(@" = %@",);//返回支付结果//【由于跳转到支付宝客户端支付的过程中,商户APP很可能被系统在后台杀掉,所以支付接口会被无效的。请让商户处理返回的回调结果,处理逻辑与该方法相同】}];;

(2)点击项目名称,点击“信息”选项卡,在“URL”选项中点击“+”,在“URL”中输入您的APP标识,如:“”。 “”来自以下代码:

付款代码中:

此处输入的 URL 用于测试演示。实际商户APP需单独填写。建议对商家的APP有一定的认同度。一定不能与其他商户应用重复,否则支付宝可能会返回,导致无法正确跳回商户应用。

4、可能出现的错误:

1:支付宝交易订单处理失败

注意:支付宝的金额只能精确到分,所以不能使用小数点后两位以上的浮点数。

所以:应该使用 %.2f

2:支付宝支付失败:4000

检查订单的各个参数,例如订单ID错误地写成了浮点类型。

3:其他

检查各种参数和公钥等。

交互过程

这个流程和支付宝的流程类似。如果你明白的话,其实是一样的。

微信支付流程

首先需要明确一下流程:

用户使用APP客户端选择产品、下订单。

商户客户端(即你制作的APP)将用户的商品数据传输至商户服务器,请求生成支付订单。

商户后台调用统一下单接口向微信服务器发送请求。微信服务器生成预付费订单并返回给商户后台。

商户后端将此返回给商户客户端。

用户点击确认付款。此时商户客户端调用SDK打开微信客户端,进行微信支付。

微信客户端向微信服务器发起支付请求,并返回支付结果(该参数用于两者之间的交互。微信服务器需要验证微信客户端传递的参数与第三步生成的ID是否一致) )。

用户输入支付密码后,微信客户端提交支付授权,与微信服务器交互,完成支付。

微信服务器向微信客户端发送支付结果提示,并异步向商户服务器发送支付结果通知。

商户客户端通过支付结果回调接口查询支付结果,并向后台检查支付结果是否正确,后台返回支付结果。

商户客户端显示支付结果,完成订单,发货。

虽然看起来有点多,但是理解起来并不复杂。这和我们平时用手机买东西是一样的。我们的客户需要做的就是

启动微信客户端发起支付

显示付款结果

整合过程

首先是下载SDK。

微信SDK下载

建议下载头文件和示例看一下。 (吐槽,官方的例子太丑了,看得我头晕!评论不多……鄙视他们)

导入微信支付SDK库

只需导入上面下载的iOS头文件和库并下载SDK包即可。我这里的是SDK1.6.2。然后需要链接到依赖库。在 —> —> 链接方式 — 单击 + 号 -> 搜索您需要的内容。系统库。

libz 待定

.0.待定

设置网址

注册微信平台APP时,会给出一个唯一的识别标识符()。这一点在APP开发步骤中都有明确的说明。您需要填写网址。

网址

注册于

如下:

- (布尔):(*) :(*) {

// 为了 。

/**

* 使用微信终端注册ID。这里一般的建议是写成宏,这样方便维护。 @“测试演示”不需要使用。这里的ID是假的,需要更改以及里面的URL Type。

*/

[ :@"" :@"测试演示"];

是的;

处理微信启动时通过URL传递的数据

//前两种方法已被iOS9弃用。如果是.2在线的话,就会出现无法进入微信的回调方法。这就是原因。本来不想写这两个老方法,但是在官方demo上看到这两个之后,我决定也写下来。 。 。 。

//保留9.0之前的方法,以适应较低版本。

- (BOOL):( *) :( *)url{

[:网址:自己];

- (BOOL):( *) :( *)url :( *) :(id){

[:网址:自我];

//9.0之后的方法

- (BOOL):( *)应用程序 :( *)网址 :( *){

什么APP可以用微信支付_软件可以用微信支付_可以使用微信支付

//这里判断发起的请求是否是微信支付。如果是的话,使用该方法调出微信客户端的支付页面(://pay前面的字符串是你的,)

[:网址:自我];

//微信SDK自带的方法,处理微信客户端操作完成后返回程序后的回调方法,并显示支付结果。

-(无效) :(*)resp

//启动微信支付

* = [ :@:%d, 分别];

if([resp :[ ]]){

//支付返回结果。实际支付结果需要在微信服务器上查询。

(分别){

案例0:

=@支付结果:成功! ;

案例1:

= @支付结果:失败! ;

案例2:

= @用户已退出支付! ;

:

= [ :@支付结果:失败! = %d, = %@, 分别, 分别];

最重要的就在这里! !

在调用微信支付之前,您需要进行下单、签收等操作,以获取微信支付所需的参数。为了提高安全性,下单和签名操作通常在后台完成。如果您在前台进行,如果您的信息被捕获并更改,您将不高兴。 。 。 。 。

所需参数包括:(商户号)、(预付订单ID)、(参与签名的随机字符串)、(参与签名的时间戳)、sign(签名字符串)。

使用点击支付控制器中的核心代码调用微信客户端支付。这些参数都是在后台传递给你的。添加了注释,应该很容易理解。

# 标记微信支付方式

- (空白){

//需要创建这个支付对象

*请求= [[]初始化];

//由用户微信ID组成的唯一标识符,用于验证微信用户

要求。 =@“”;

// 商户ID,注册时给定

要求。 =@“”;

// 预付订单是后台与微信服务器交互后,由微信服务器传给你的服务器,你的服务器传给你。

要求。 =@“”;

// 根据财付通文档填写的数据和签名

//这是特殊的并且是固定的。只能是req。 = 标志=

要求。 =@“”;

// 随机编码,为了防止重复,在后台生成

要求。 =@“”;

// 这是一个时间戳,也是后台生成的,用于验证支付。

* = @"";

要求。 = .;

// 这个签名也是在后台完成的

req.sign = @"";

//向微信发送请求并等待微信返回

[:要求];

这个JSON中的数据(上面的参数)就是后端需要传递给你的。至于怎么去,后台也有文档,让他看一下吧~~~

“”:“”,

“”:“”,

"": "标志=",

“”:“”,

“”:“”,

“”:“”,

“符号”: ””

统一订单API

打开支付界面

此时,如果不出意外,您应该可以正常付款了。过程是最重要的。一旦你理解了它,你就会知道该怎么做。强烈建议有需要的朋友先理清思路,不要急于下手。

PS:本文中签名是在后台完成的。如果你需要在你的客户端上做,可以参考这篇文章和这篇文章。他们的签名是在客户端上完成的,并且写得更详细。 。

可能出现的问题

1.如果支付完成后您还停留在微信上,请检查以下设置。

2、微信客户端可以打开,但是打开后中间只有一个白色的“确定按钮”。点击后会返回给客户端。如果是这种情况,应该是参数有问题,参数已经过期或者不是真实的ID。代码没有问题。特别注意的是,微信需要两次签名,两次~~~~

3.如果友盟是在APP中使用或者用于分享,则不需要导入SDK,否则会出现一些奇怪的问题,比如打不开手机微信客户端、微信客户端网页、打不开等打开微信客户端网页。但转眼就过去了。 。 。这基本上都是因为共享SDK已经包含了微信的SDK。所以如果出现奇怪的错误,检查一下两者是否有冲突!

4、微信支付的单位是积分。受过骗的人都知道这一点。 。 。 。为什么,

如果集成过程中遇到任何问题,可以一起讨论。我会把这些记录下来,如有错误请指出!谢谢!

分享