iOS中 最新微信支付/最全的微信支付教程详解

简介:

每日更新关注:http://weibo.com/hanjunqiang  新浪微博!

亲们, 首先让我们来看一下微信支付的流程吧.

1. 注册微信开放平台,创建应用获取appid,appSecret,申请支付功能,申请成功之后会返回一些参数.

2. 下载微信支付sdk

3. 客户端请求订单,后台与微信后台交互,返回给客户端支付参数

4. 调用微信客户端,由微信客户端和微信服务器打交道;

5. 客户端和服务端都会收到支付结果;(前台消息不可靠,我们需要去后台验证,如果后台没有收到支付通知,后台去微信服务器验证然后将结果返回给客户端)


支付流程图(大家看一下支付流程).


那么我们现在就开始写微信支付的demo了.

开发步骤

1:去微信开放平台注册应用

https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN&token=2c0fee9c43e1eb8f9febcc7cb73abf598e2d4011


创建移动应用并成功之后会收到腾讯发来的邮件


通过邮件我们能获得重要的参数:

(1):AppID

(2):微信支付商户号

(4):前往商户平台完成入驻

(4):API秘钥(自己设置即可,注意一定要32位字母加数字的组合)记得保存好秘钥,以后要使用




有了这些参数后,我们就可以开发自己的项目了.

接下来, 我们就新建一个微信工程吧.

创建好工程以后呢, 我们去微信平台下载sdk

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



下载好以后呢, 我们就开始集成SDK了





把左边的SDK拉到工程里面哦.

大家会看到文件夹里面有集成SDK的步骤.


第一步: 在info.plist添加如下代码

每日更新关注:http://weibo.com/hanjunqiang  新浪微博!


这个大家都很熟练拉

第二步:

添加需要的框架和依赖库 (ps: 官方文档没让添加libc++.tbd, 这点也是工程报错的时候发现的...)



剩下的事情, 我们只需要按照官方文档来做就行了, 亲们.


我们还回到上个页面.



微信:APPID:wx920fde9f97d60569

每日更新关注:http://weibo.com/hanjunqiang  新浪微博!

我们可以先使用这个APPID   (ps: 这是同事的前公司的应用ID)

1、项目设置APPID

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

这个我们按照文档做一下就可以了.


2、注册APPID

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

[WXApi registerApp:@"wxd930ea5d5a258f4f];


3、调起支付

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

现在我们只需要在控制器上添加一个button, 名字改成微信支付就可以了

button事件:

[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. - (IBAction)weChatPayButtonAction:(id)sender  
  2. {  
  3.     PayReq *request = [[PayReq alloc] init];  
  4.     /** 商家向财付通申请的商家id */  
  5.     request.partnerId = @"1220277201";  
  6.     /** 预支付订单 */  
  7.     request.prepayId@"82010380001603250865be9c4c063c30";  
  8.     /** 商家根据财付通文档填写的数据和签名 */  
  9.     request.package = @"Sign=WXPay";  
  10.     /** 随机串,防重发 */  
  11.     request.nonceStr@"lUu5qloVJV7rrJlr";  
  12.     /** 时间戳,防重发 */  
  13.     request.timeStamp1458893985;  
  14.     /** 商家根据微信开放平台文档对数据做的签名 */  
  15.     request.sign@"b640c1a4565b476db096f4d34b8a9e71960b0123";  
  16.     /*! @brief 发送请求到微信,等待微信返回onResp 
  17.      * 
  18.      * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持以下类型 
  19.      * SendAuthReq、SendMessageToWXReq、PayReq等。 
  20.      * @param req 具体的发送请求,在调用函数后,请自己释放。 
  21.      * @return 成功返回YES,失败返回NO。 
  22.      */  
  23.     [WXApi sendReq: request];  
  24. }  

每日更新关注:http://weibo.com/hanjunqiang  新浪微博!

4、支付结果回调

按照微信SDKSample,在类实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错

误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。注意

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

这是最后一步了, 我们在支付页面支付完成以后呢要知道支付结果, 怎么做呢?

首先, 在AppDelegate.m里面实现该方法


[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options  
  2. {  
  3.     /*! @brief 处理微信通过URL启动App时传递的数据 
  4.      * 
  5.      * 需要在 application:openURL:sourceApplication:annotation:或者application:handleOpenURL中调用。 
  6.      * @param url 微信启动第三方应用时传递过来的URL 
  7.      * @param delegate  WXApiDelegate对象,用来接收微信触发的消息。 
  8.      * @return 成功返回YES,失败返回NO。 
  9.      */  
  10.     return [WXApi handleOpenURL:url delegate:self];  
  11. }  

接下来我们需要遵守下协议


每日更新关注:http://weibo.com/hanjunqiang  新浪微博!


最后一步, 就等支付结果出来以后回调一个函数了

[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /*! @brief 发送一个sendReq后,收到微信的回应 
  2.  * 
  3.  * 收到一个来自微信的处理结果。调用一次sendReq后会收到onResp。 
  4.  * 可能收到的处理结果有SendMessageToWXResp、SendAuthResp等。 
  5.  * @param resp具体的回应内容,是自动释放的 
  6.  */  
  7. - (void)onResp:(BaseResp *)resp  
  8. {  
  9.     //支付返回结果,实际支付结果需要去微信服务器端查询  
  10.     NSString *strMsg = [NSString stringWithFormat:@"支付结果"];  
  11.     switch (resp.errCode) {  
  12.         case WXSuccess:  
  13.             strMsg = @"支付结果:成功!";  
  14.             NSLog(@"支付成功-PaySuccess,retcode = %d", resp.errCode);  
  15.             break;  
  16.         default:  
  17.             strMsg = [NSString stringWithFormat:@"支付结果:失败!retcode = %d, retstr = %@", resp.errCode,resp.errStr];  
  18.             NSLog(@"错误,retcode = %d, retstr = %@", resp.errCode,resp.errStr);  
  19.             break;  
  20.     }  
  21. }  

这样, 我们就完成了微信支付iOS客户端的代码,了解更多请关注博主微博:

每日更新关注:http://weibo.com/hanjunqiang  新浪微博!

Demo下载地址:https://github.com/XiaoHanGe/WeChatPay.git
ps: 大家工作中写完以后要在真机上测试.

G
M
T
 
 
Text-to-speech function is limited to 100 characters
Options :  History :  Help :  Feedback Close

相关文章
|
4月前
|
移动开发 算法 安全
快应用如何去申请微信支付商户?-快应用申请微信支付-优雅草卓伊凡
快应用如何去申请微信支付商户?-快应用申请微信支付-优雅草卓伊凡
116 0
快应用如何去申请微信支付商户?-快应用申请微信支付-优雅草卓伊凡
|
iOS开发 开发者
iOS微信分享配置universal links步骤
iOS微信分享配置universal links步骤
3997 58
|
6月前
|
JSON 机器人 API
gewe微信机器人搭建教程
GeWe开放平台是基于 微信开放平台的二次封装API服务,开发者可以使用本服务来处理微信中的各种事件,并可以通过后台调用对应的 API 来驱动微信自动执行任务,如自动收发消息、自动化应答、自动群邀请、群管理等,封装了 RPA技术流程,简化开发者二次开发难度,提供了开发者与微信对接的能力,使用简单,操作快捷,支持多种语言接入。
324 17
|
8月前
|
安全 算法 小程序
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
513 28
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
|
9月前
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
5140 38
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
8月前
|
小程序
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
550 1
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
|
9月前
|
小程序
【01】微信支付商户申请下户到配置完整流程-微信商户申请-资料准备以及提交-微信商户密钥申请-申请+配置完整流程-优雅草卓伊凡
【01】微信支付商户申请下户到配置完整流程-微信商户申请-资料准备以及提交-微信商户密钥申请-申请+配置完整流程-优雅草卓伊凡
258 2
【01】微信支付商户申请下户到配置完整流程-微信商户申请-资料准备以及提交-微信商户密钥申请-申请+配置完整流程-优雅草卓伊凡
|
8月前
|
存储 API UED
鸿蒙特效教程02-微信语音录制动画效果实现教程
本教程适合HarmonyOS初学者,通过简单到复杂的步骤,一步步实现类似微信APP中的语音录制动画效果。
324 0
鸿蒙特效教程02-微信语音录制动画效果实现教程
|
9月前
|
小程序 数据安全/隐私保护 开发者
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
570 3
详细教程:扫码提交表单后,数据直接推送到企业微信、钉钉、飞书群聊
在草料制作的表单中,填表人扫码填写并提交数据后,这些信息可以立即通过企业微信、钉钉或飞书自动推送到相应的群聊中,实现即时共享和沟通,提升团队协作效率。
524 2

热门文章

最新文章