微信支付

  • 直接看微信的官方文档介绍,写的好任性,完全找不到东西南北啊。所以就自己找网上的资料,参照官网写一个简单的。
  1. 首先微信的官方文档肯定是要看的,即使看不大懂。https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2

微信支付

看到途中的统一下单接口,这个是后台用的接口(你要有一个靠谱的后台,至少他也会看一遍这个,至少他也知道微信支付是需要后台支持的)

然后看到调起支付接口,这里应用名字:是你在微信开放平台审核通过的一个东西。

支付DEMO

  • 首先下载微信支付的sdk:微信支付

  • 将下载的sdk导入到工程文件中;

导入SDK

  • 打开README.txt文件,导入库。

打开文件

添加库

  • 联网设置

      NSAppTransportSecurity        Dictionary
        NSAllowsArbitraryLoads      YES
    

    App Transport Security Settings是XCode7以后就需要开发中手动添加设置的,因为iOS9默认限制了http协议的访问。

联网设置

  • 配置appid

配置appid

  • 开始敲代码

  • 打开demo中的applegate中看是怎么注册的

DEMO-1

  • 在自己工程中注册微信支付

注册

虽然文档很蛋疼,但是其实真正的开发还是很省事的。

  • 也可以看看源文件是怎么注册的。

源文件注册方法

一共就两个注册方法,写的很简单

  • 前两步已经完成,第三步在之前也已经完成
  • 发起支付,首先看微信给我们的官方demo中是怎么做的。

DEMO-4

DEMO-5

DEMO-6

  • 调起微信支付

调起微信支付

  • 最后还需要做的就是,处理返回微信支付返回信息,使用了微信知否功能,不管是支付成功和失败,甚至还是用户自己取消支付,都会需要返回当前应用,并返回相关的信息。

  这里就需要用到微信SDK的处理返回信息的代理协议和代理方法了:

  • demo中回调方法

demo中处理协议方法

  • 自己Appdelegate中处理回调方法

自己项目中处理回调方法

那么这里面的返回信息中主要就有两个东西:resp.errCode错误码 和 resp.errStr错误原因

错误信息

  • 错误信息1

错误信息-1

operator delete[](void*)", referenced from:


// 解决办法是导入:libc++
  • 错误信息2

错误信息2

 "_OBJC_CLASS_$_CTTelephonyNetworkInfo", referenced from:       objc-class-ref in libWeChatSDK.a(MTA


 // 解决办法:导入CoreTelephony.framework 开发文档上并没有
  • 错误信息3

错误信息3


iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。

受此影响,当你的应用在iOS 9中需要使用微信SDK的相关能力(分享、收藏、支付、登录等)时,需要在“Info.plist”里配置

This app is not allowed to query for scheme weixin",需要将应用加到白名单上
  • 解决办法

解决办法-3

LSApplicationQueriesSchemes:array

源码地址

微信支付源码DEMO

results matching ""

    No results matching ""