天天看點

內建微信支付詳細步驟及說明——解決點選微信支付隻有一個确定按鈕的情況

內建微信支付詳細步驟及說明——解決點選微信支付隻有一個确定按鈕的情況

最近做了微信支付的功能,有比較坑的地方,在這裡寫出來和大家分享下,避免大家多走彎路,浪費時間。

本文詳細介紹了微信支付的每一步,并且可以解決點選跳轉到微信用戶端隻有一個确定按鈕的情況,請仔細往下看吧

注:來看“解決點選微信支付隻有一個确定按鈕的情況”的同學直接看最下面,(四)即可解決該情況,若還未解決,歡迎加群

(一)準備工作

    1、首先要去微信的開放平台(http://open.weixin.qq.com)進行開發者賬号的注冊

    2、在開發者賬号裡建立一個APP應用,然後填寫必填資訊送出稽核

    3、進入APP應用,在接口資訊中,進行申請“獲得微信支付能力”的功能,期間會送出相關的公司營業資訊證明等

說明:(1)說實話,不是我吐槽,他這個稽核也太慢了

           (2)以上3步有的公司已經給弄好了,碼農們直接向上級要所需的參數就可以了,包括:商戶号、商戶密鑰、AppID

一般第一步不用看啦 ,那麼開始第二步  >_<

(二)導入相應的檔案,配置環境

    微信官方文檔一份:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417694084&token=36432ad73d9973c2604798c8d42f5b4c84b411ed&lang=zh_CN

>>>>>>>>>>>先看1、2、下面說明<<<<<<<<<<<

1、首先到微信開放平台——>登入——>資源中心——>資源下載下傳

2、step1:在你的工程裡面,建議建立一個檔案夾“微信支付”,其下建立兩個子檔案夾:一個WeiXinSDK,一個WeiXinFiles

    step2:把解壓之後的檔案全放進<WeiXinSDK>裡面

    step3:把我demo裡面內建的微信支付的檔案放在<WeiXinFiles>裡面

>>>>>>>>>>>>>>>重要說明<<<<<<<<<<<<<<<<<<

可以省略1、2、兩步,直接把demo裡面有一個<微信支付>的檔案夾拖到你工程的根目錄即可,如果你那麼做了,那麼配置路徑可以直接寫此路徑:$(SRCROOT)/你的項目工程名/微信支付/WeixinSDK

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

3、在你的工程檔案中選擇Build Setting,在Search Paths中添加 libWeChatSDK.a ,WXApi.h,WXApiObject.h 三個檔案所在位置

(1)選擇Build Setting —> 輸入search —>找到Search Paths

(2)配置Header這一項的路徑,你的微信SDK存放在什麼檔案夾就寫哪個檔案夾的路徑,一般為:$(SRCROOT)/你的項目工程名/微信支付/WeixinSDK

【路徑這個比較愛出錯,如果你配置出了問題,歡迎加群:171907129,本人會耐心解答的】

4、在TARGETS下,選擇info,在URLTypes裡面添加一項

內建微信支付詳細步驟及說明——解決點選微信支付隻有一個确定按鈕的情況

>>>>>>SDK包裡的重要說明<<<<<<<

1、iOS 9系統政策更新,限制了http協定的通路,此外應用需要在“Info.plist”中将要使用的URL Schemes列為白名單,才可正常檢查其他應用是否安裝。

受此影響,當你的應用在iOS 9中需要使用微信SDK的相關能力(分享、收藏、支付、登入等)時,需要在“Info.plist”裡增加如下代碼:

<key>LSApplicationQueriesSchemes</key>

<array>

    <string>weixin</string>

</array>

<key>NSAppTransportSecurity</key>

<dict>

    <key>NSAllowsArbitraryLoads</key>

    <true/>

</dict>

內建微信支付詳細步驟及說明——解決點選微信支付隻有一個确定按鈕的情況

或者配置白名單域名pingma.qq.com

2、開發者需要在工程中連結上 CoreTelephony.framework、sqlib3.tbb、libz.tbd、libc++.tbd

3、解決bitcode編譯不過問題,設定bit code為NO

4、AFNetworking也有用到,如果有不用重複導入

(三)開始寫代碼

1、在APPdelegate.h中導入頭檔案,遵守微信的delegate

#import "WXApi.h"

     @interface AppDelegate : UIResponder <WXApiDelegate>
           

2、在didFinishLaunchingWithOptions:方法中注冊你的appId;

//注冊微信appId 
   [WXApi registerApp:@"填寫你的appId"]
           

3、openURL:方法

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    
    if(url != nil && [[url host] isEqualToString:@"pay"]){
        //微信支付
        NSLog(@"open:微信支付");
        return [WXApi handleOpenURL:url delegate:self];
    }
    else{
        //其他
        return YES;
    }
}
           

4、handleOpenURL:方法

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    NSLog(@"1url = %@   [url host] = %@",url,[url host]);
    
    if(url != nil && [[url host] isEqualToString:@"pay"]){
        //微信支付
        NSLog(@"handle:微信支付");
        return [WXApi handleOpenURL:url delegate:self];
    }
    else{
        //其他
        return YES;
    }
}
           

5、實作WXApiDelegate協定的兩個方法(demo中含詳細代碼及說明)

-(void)onReq:(BaseReq *)req{
    
}

-(void)onResp:(BaseResp *)resp{

}
           

(四)>>>>>>>>>>>>>需要你修改的資訊<<<<<<<<<<<<<<<<

>>> 打開LVWxPay.m檔案

1、應用APPID appid = @"填寫你的appId";

2、微信支付商戶号 mch_id = @"填寫你的商戶号";

3、支付結果異步通知的網站 notify_url [email protected]"填寫通知的網址”;

4、商戶密鑰 partner = @"填寫你的商戶密鑰";

5、request.sign = [md5 createMD5SingForPay:@"填寫你的appId" partnerid:request.partnerId prepayid:request.prepayId package:request.package noncestr:request.nonceStr timestamp:request.timeStamp];

>>> 打開DataMD5.m檔案

1、添加商戶密鑰key字段

    [contentString appendFormat:@"key=%@", @"填寫你的商戶密鑰"];

>>>>>>【注意】:除了上面所寫參數外,其他參數不需要修改,也不要修改,否則可能引起簽名錯誤 <<<<<<<

那麼做完上面的工作之後,我們就可以愉快的支付啦.......

//>>>>>>>>>>>>>微信支付<<<<<<<<<<<<<<<<

1、在你需要去支付這個功能的檔案裡面,導入頭檔案

    #import "LVWxPay.h"

2、在你點選去微信支付的時候實作下面方法(詳細說明請看demo)

[LVWxPay WXPayWithbody:productDes andtrade_no:trade_no andPrice:total_fee];

本人是一名碼農女,最近剛開通的部落格,想和大家分享自己的經驗,也在向大神們學習,如果對以上内容有什麼疑問或者想要互相交流的,歡迎進群:171907129交流學習;

另外說明:本文涉及到的demo我放在群共享裡面,有需要的加下群去拿吧(因為剛開通,不知道把檔案添加到哪裡),陸續還會在群共享裡面添加其他資料,歡迎下載下傳

繼續閱讀