iOS第三方支付(支付宝、微信)

作者: 和之一 | 来源:发表于2016-04-20 17:59 被阅读3157次

这里会详细讲解支付宝和微信支付

一、支付宝支付

1.准备工作

1> 向支付宝”签约" 成为支付宝的”商户”, 签约完成后, 支付宝会提供一些必要的数据给我们(商户ID-partner,帐号ID-支付宝帐号)

注意:签约成为支付宝商户,需要提供公司营业执照

http://act.life.alipay.com/shopping/before/help/index.html

2> 获取支付相关的 '私钥' 和 '密钥'

https://doc.open.alipay.com/doc2/detail?treeId=44&articleId=103242&docType=1

3> 下载支付的SDK

https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1

2.支付流程图

3.集成支付宝SDK

官方集成文档

https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7386797.0.0.IGzFSR&treeId=48&articleId=103346&docType=1

1> 从官方Demo中把红色标注的文件添加进入项目中

2> 添加Pch文件新建pch成功后,在pch文件中添加#import然后按照下图所示,进行修改pch的文件路径

3> 修改SDK路径完成以上两步之后,会发现出现了一个经典的错误,找不到:#include解决这个问题,需要在Header Search Path中配置SDK中的点a(libssl.a/libcrypto.a)文件所在的路径,找到之后设置好正确的路径

“$(SRCROOT)/01-支付宝集成/ALiPay”

4> 添加库

添加下图中红色框中的库

5> 为URL Types 添加支付宝回调scheme

二、微信支付

1.微信商户申请步骤

http://kf.qq.com/faq/120911VrYVrA150906F3qqY3.html

2.申请成功后说明

官方支付账户说明文档:

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=3_1

账户参数说明:

官方业务流程文档:

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3

3.微信支付集成

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417694084&token=&lang=zh_CN

1> 添加微信支付SDK

2> 添加库

4.开发步骤说明

官方开发步骤文挡:

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

1> 项目设置APPID

商户在微信开放平台申请开发APP应用后,微信开放平台会生成APP的唯一标识APPID。在Xcode中打开项目,设置项目属性中的URL Schemes为您的APPID

2> 注册APPID

商户APP工程中引入微信lib库和头文件,调用API前,需要先向微信注册您的APPID,代码如下:

[WXApi registerApp:@"wxd930ea5d5a258f4f" withDescription:@"demo 2.0"];

3> 调起支付

商户服务器生成支付订单,先调用【统一下单API】生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付。以下是调起微信支付的关键代码:

// 调起微信支付

PayReq *request = [[PayReq alloc] init];

/** 微信分配的公众账号ID -> APPID */

request.partnerId = APPID;

/** 预支付订单 从服务器获取 */

request.prepayId = @"1101000000140415649af9fc314aa427";

/** 商家根据财付通文档填写的数据和签名 <暂填写固定值Sign=WXPay>*/

request.package = @"Sign=WXPay";

/** 随机串,防重发 */

request.nonceStr= @"a462b76e7436e98e0ed6e13c64b4fd1c";

/** 时间戳,防重发 */

request.timeStamp= @“1397527777";

/** 商家根据微信开放平台文档对数据做的签名, 可从服务器获取,也可本地生成*/

request.sign= @"582282D72DD2B03AD892830965F428CB16E7A256";

/* 调起支付 */

[WXApi sendReq:request];

4> 支付结果回调

照微信SDK Sample,在类实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。

注意: 一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。

代码示例如下:

支付返回结果,实际支付结果需要去微信服务器端查询

-(void)onResp:(BaseResp *)resp

{

if([resp isKindOfClass:[PayResp class]]){

switch (resp.errCode) {

case WXSuccess:{

NSlog(@"支付成功");

}

break;

default:{

NSlog(@“支付失:%d”,resp.errCode)

}

break;

}

}

}

相关文章

  • iOS支付的配置

    iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...

  • iOS之支付

    iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...

  • ios支付

    iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...

  • 云服务平台

    iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...

  • 支付

    iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...

  • iOS支付的一些配置

    iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...

  • iOS支付

    支付宝支付 支付宝支付支付宝补充 微信支付 微信支付 内购 iOS开发 内购流程

  • iOS- 收藏 (专题文章分类)

    支付宝/ 微信 / 银联 1. iOS 支付宝详细集成总结2. 支付宝3. iOS-微信支付和支付宝支付4. ...

  • 聚合支付

    一,什么是聚合支付? 1,微信,支付宝支付为第三方支付;基于并整合微信支付宝等多种第三方支付平台,并提供支付技术和...

  • 聚合支付

    一,什么是聚合支付? 1,微信,支付宝支付为第三方支付;基于并整合微信支付宝等多种第三方支付平台,并提供支付技术和...

网友评论

本文标题:iOS第三方支付(支付宝、微信)

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