ios微信支付集成到使用

導入微信支付SDK

1、在podfile中寫pod 'WechatOpenSDK'
2、cd到podfile文件所在文件夾
3、pod install
4、pod search WechatOpenSDK。如果出現(xiàn)以下界面


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

恭喜,微信SDK已經(jīng)導入成功


如果出現(xiàn)以下錯誤


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

解決辦法:終端輸入:rm ~/Library/Caches/CocoaPods/search_index.json
執(zhí)行完成后在輸入pod search WechatOpenSDK。


配置微信支付

1、在工程的配置文件下TARGETS - info - URL Types ,點擊添加按鈕,出現(xiàn)以下界面。其中identifier隨便輸入,Schemes輸入微信支付的APPID,其他兩個不用管。

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

2、打開infoPlist文件添加 LSApplicationQueriesSchemes并設置其類型為array,再添加兩個數(shù)組元素。如下圖

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

使用

1、創(chuàng)建橋接文件
2、在橋接文件寫
#import "WXApi.h"
#import "WechatAuthSDK.h"
3、在AppDelegate的didFinishLaunchingWithOptions方法里注冊微信支付:

WXApi.registerApp(WXAPPID)

讓AppDelegate遵循WXApiDelegate協(xié)議在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)
 }

實現(xiàn)微信的兩個方法。

func onReq(_ req: BaseReq!) {
        //收到一個來自微信的請求,第三方應用程序處理完后調用sendResp向微信發(fā)送結果
        //一般不用管
    }
    
    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")))//發(fā)消息告訴觀察者已經(jīng)支付成功
                break;
            default:
                break;
            }
        }else if BaseResp.isKind(of: SendAuthResp.self){//一般不用管
            
        }
    }

4、最后當然是在需要支付的界面添加觀察者并發(fā)起支付請求啦。示例如下(至于每個參數(shù)的值是多少,后臺會提供啦,不用考慮那么多,騷年!)

WXApi.registerApp(WXAPPID)
let payRequest = PayReq()//創(chuàng)建支付請求
payRequest.prepayId = ""
payRequest.partnerId = ""
payRequest.package = ""
payRequest.nonceStr = ""
payRequest.timeStamp = UInt32(("如果這里是字符串,就需要轉為Int32類型" as NSString).intValue)
payRequest.sign = WXPayData.sign
            
WXApi.send(payRequest)//給微信發(fā)起請求

完工

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,893評論 25 709
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,161評論 4 61
  • 文/濁酒清憂 還來不及告別 就已經(jīng)遠去 黑夜染上白霜 落在清晨,一只鳥飛過 它便化成一縷輕煙 擁抱一簇云朵,藏著思...
    濁酒清憂閱讀 422評論 0 4
  • 打開簡書首頁,引入眼簾的是:今日熱門,七日熱門和三十日熱門。 尚不知道簡書是不是根據(jù)我的資料為我精心推送的訂制熱門...
    秋水Chloe閱讀 355評論 1 1

友情鏈接更多精彩內容