FWQ
详解iOS微信支付开发案例代码
这篇文章主要为大家详细介绍了iOS开发案例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 微信支付有很多坑的,官方提供的文档一点都不全面,而且demo也比较”羞涩”难懂。很多注意的细节都没有体现出来,走了很多弯路。于是,系统的开发流程如下。(完整的demo附在博客最后面)这里面包括微信支付开发和支付宝开发调用客户端的兼容处理。(两次签名放在移动端,博客中没提到没安装微信客户端的情况,也很简单[WXApi sendReq:request]调用这个方法的返回值为0即可判断。) 一、环境配置 1、首先是https协议访问,在plist设置白名单 2、当你工程中有微信分享、收藏、支付、登录等,需要在“Info.plist”里增加如下代码(LSApplicationQueriesSchemes) 3、解决bitcode编译不过问题 4、设置URL types 5、导入SDK(可从微信官方的demo移植过来) 6、导入系统依赖库 7、特别要注意的是 微信支付是以分为单位的,也就是说,如果你支付金额是保留两位小数,支付的金额必须*100后再传给微信支付平台,其他的依次类推。 二、代码开发 1、在程序入口(即applegate.m)需要进行的操作 2、增加如下代理方法,否则不回调微信客服端(也是在delegate.m文件中) 3、微信支付成功的回调函数 这个有必要说明下,官方文档是这样说明的:不能以客服端支付成功的结果就直接当做是订单支付成功的结果,要以服务器返回的订单状态为准,也就是说,客服端支付成功后,微信支付平台会给服务器发送支付成功的消息,后台修改订单状态,重新返回给客户端。简单就是,支付成功要发送给特定的视图控制器(带有微信支付功能的视图控制器)发送通知,让这个特定的视图控制去请求服务器订单的住状态。这个回调函数必须写在delegate.m中!!! 4、特定视图控制器的代码(带有微信支付功能的视图控制器) 4.1 提交预支付订单获得预订单id(这个过程必须经过两次签名,分别是不带参数签名和携带参数签名,当然,这些方法都已经在payRequsestHandler类封装好了,你只需要传参数调用方法就可以了)这个也是点击支付按钮的动作方法 4.2得到预支付订单,那么就可以调微信支付的客服端(4.2和4.1代码是连续的) 附带sign参数签名的独立封装的两个方法,没用payRequsestHandler封装的方法,自己写的,因为用了出现问题(问题截图如下),先代码截图,后面再提供可直接复制黏贴的代码块问题截图:(相信很多人遇到过,100%是sign签名的问题) 方法一: 方法二: 4.3…