微信支付
- 直接看微信的官方文档介绍,写的好任性,完全找不到东西南北啊。所以就自己找网上的资料,参照官网写一个简单的。
- 首先微信的官方文档肯定是要看的,即使看不大懂。https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2
看到途中的统一下单接口,这个是后台用的接口(你要有一个靠谱的后台,至少他也会看一遍这个,至少他也知道微信支付是需要后台支持的)
然后看到调起支付接口,这里应用名字:是你在微信开放平台审核通过的一个东西。
支付DEMO
首先下载微信支付的sdk:微信支付
将下载的sdk导入到工程文件中;
- 打开README.txt文件,导入库。
联网设置
NSAppTransportSecurity Dictionary NSAllowsArbitraryLoads YES
App Transport Security Settings是XCode7以后就需要开发中手动添加设置的,因为iOS9默认限制了http协议的访问。
- 配置appid
开始敲代码
打开demo中的applegate中看是怎么注册的
- 在自己工程中注册微信支付
虽然文档很蛋疼,但是其实真正的开发还是很省事的。
- 也可以看看源文件是怎么注册的。
一共就两个注册方法,写的很简单
- 前两步已经完成,第三步在之前也已经完成
- 发起支付,首先看微信给我们的官方demo中是怎么做的。
- 调起微信支付
- 最后还需要做的就是,处理返回微信支付返回信息,使用了微信知否功能,不管是支付成功和失败,甚至还是用户自己取消支付,都会需要返回当前应用,并返回相关的信息。
这里就需要用到微信SDK的处理返回信息的代理协议和代理方法了:
- demo中回调方法
- 自己Appdelegate中处理回调方法
那么这里面的返回信息中主要就有两个东西:resp.errCode错误码 和 resp.errStr错误原因
错误信息
- 错误信息1
operator delete[](void*)", referenced from:
// 解决办法是导入:libc++
- 错误信息2
"_OBJC_CLASS_$_CTTelephonyNetworkInfo", referenced from: objc-class-ref in libWeChatSDK.a(MTA
// 解决办法:导入CoreTelephony.framework 开发文档上并没有
- 错误信息3
iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。
受此影响,当你的应用在iOS 9中需要使用微信SDK的相关能力(分享、收藏、支付、登录等)时,需要在“Info.plist”里配置
This app is not allowed to query for scheme weixin",需要将应用加到白名单上
- 解决办法
LSApplicationQueriesSchemes:array