ios微信支付集成到使用

导入微信支付SDK

1、在podfile中写pod 'WechatOpenSDK'
2、cd到podfile文件所在文件夹
3、pod install
4、pod search WechatOpenSDK。如果出现以下界面


91D9740A-7A85-45BE-A285-3F8F633EA37C.png

恭喜,微信SDK已经导入成功


如果出现以下错误


53CF06BD-38FB-454B-A8FB-6EC4F82B3111.png

解决办法:终端输入:rm ~/Library/Caches/CocoaPods/search_index.json
执行完成后在输入pod search WechatOpenSDK。


配置微信支付

1、在工程的配置文件下TARGETS - info - URL Types ,点击添加按钮,出现以下界面。其中identifier随便输入,Schemes输入微信支付的APPID,其他两个不用管。

CB143D98-3372-469B-BA7B-123D0EF47591.png

2、打开infoPlist文件添加 LSApplicationQueriesSchemes并设置其类型为array,再添加两个数组元素。如下图

3E4EEE26-34E5-4988-B0BE-6091C036A5DB.png

使用

1、创建桥接文件
2、在桥接文件写
#import "WXApi.h"
#import "WechatAuthSDK.h"
3、在AppDelegate的didFinishLaunchingWithOptions方法里注册微信支付:

WXApi.registerApp(WXAPPID)

让AppDelegate遵循WXApiDelegate协议在AppDelegate中添加两个代理方法

func application(_ application: UIApplication, handleOpen url: URL) -> Bool {
        return WXApi.handleOpen(url, delegate: self)
}
 func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        return WXApi.handleOpen(url, delegate: self)
 }

实现微信的两个方法。

func onReq(_ req: BaseReq!) {
        //收到一个来自微信的请求,第三方应用程序处理完后调用sendResp向微信发送结果
        //一般不用管
    }
    
    func onResp(_ resp: BaseResp!) {
        
        if resp.isKind(of: PayResp.self) {
            switch resp.errCode {//支付结果
            case 0://0代表支付成功
                NSLog("支付成功")
                NotificationCenter.default.post(Notification.init(name: Notification.Name(rawValue: "WXPaySuccess")))//发消息告诉观察者已经支付成功
                break;
            default:
                break;
            }
        }else if BaseResp.isKind(of: SendAuthResp.self){//一般不用管
            
        }
    }

4、最后当然是在需要支付的界面添加观察者并发起支付请求啦。示例如下(至于每个参数的值是多少,后台会提供啦,不用考虑那么多,骚年!)

WXApi.registerApp(WXAPPID)
let payRequest = PayReq()//创建支付请求
payRequest.prepayId = ""
payRequest.partnerId = ""
payRequest.package = ""
payRequest.nonceStr = ""
payRequest.timeStamp = UInt32(("如果这里是字符串,就需要转为Int32类型" as NSString).intValue)
payRequest.sign = WXPayData.sign
            
WXApi.send(payRequest)//给微信发起请求

完工

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 167,385评论 24 706
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 10,186评论 4 57
  • 问题描述: pop 手势就是为了在大屏下能够获得更好的用户体验设计的。有了 pop 手势,返回的时候不用非要点一下...
    彬至睢阳阅读 973评论 3 0
  • 文/浊酒清忧 还来不及告别 就已经远去 黑夜染上白霜 落在清晨,一只鸟飞过 它便化成一缕轻烟 拥抱一簇云朵,藏着思...
    浊酒清忧阅读 246评论 0 4
  • 打开简书首页,引入眼帘的是:今日热门,七日热门和三十日热门。 尚不知道简书是不是根据我的资料为我精心推送的订制热门...
    秋水Chloe阅读 215评论 1 1
  • 第三方分享第一弹----微信分享 大家都知道,分享功能几乎是所有APP都需要的基础功能,为了让大家免于到处去找资料...
    jihf阅读 1,644评论 0 1