iOS 微信支付WechatOpenSDK集成步驟及微信支付demo

我們在集成sdk前需要到微信開放平臺註冊自己的應用,然後拿到對應的key,其實這個一般都是後臺來做,只要問後臺拿到key就行

微信支付集成SDK介紹cocopods集成SDK手動集成SDK

一、cocopods集成SDK

1.需要安裝cocopods(安裝及使用方法參照點擊打開鏈接

2、導入

pod 'WechatOpenSDK'

3.配置一下scheme(申請回來的key)

3.在AppDelegate.h中導入頭文件,以及實現代理

#import <WechatOpenSDK/WXApi.h>//微信支付


@interface AppDelegate : UIResponder <UIApplicationDelegate,WXApiDelegate>

4.在AppDelegate.m中實現一下方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    [WXApi registerApp:@"wxd930ea5d5a258f4f"];//wxd930ea5d5a258f4f這串key是在微信開放平註冊該應用後獲得的,註冊一般是後臺去做的,叫後臺把key給你即可

    return YES;

}


#pragma mark -- 重寫AppDelegate的handleOpenURL和openURL方法:--


//9.0前的方法,爲了適配低版本 保留

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{

    return [WXApi handleOpenURL:url delegate:self];

}


- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

    return [WXApi handleOpenURL:url delegate:self];

}


//9.0後的方法

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{

    //這裏判斷是否發起的請求爲微信支付,如果是的話,用WXApi的方法調起微信客戶端的支付頁面(://pay 之前的那串字符串就是你的APPID,)

    return  [WXApi handleOpenURL:url delegate:self];

}


#pragma mark --你的程序要實現和微信終端交互的具體請求與迴應,因此需要實現WXApiDelegate協議的兩個方法:--

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

    //onReq是微信終端向第三方程序發起請求,要求第三方程序響應。第三方程序響應完後必須調用sendRsp返回。在調用sendRsp返回時,會切回到微信終端程序界面。

    

}

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

    //如果第三方程序向微信發送了sendReq的請求,那麼onResp會被回調。sendReq請求調用後,會切到微信終端程序界面。

    

    if([resp isKindOfClass:[PayResp class]])

    {

        PayResp*response=(PayResp*)resp;

        NSString *strMsg = @"支付失敗";

        switch(response.errCode){

            case WXSuccess:

            {

                //服務器端查詢支付通知或查詢API返回的結果再提示成功

                NSLog(@"支付成功");

                strMsg = @"支付成功";

                break;

            }

            case WXErrCodeUserCancel:

            {

                NSLog(@"用戶點擊取消");

                strMsg = @"用戶點擊取消";

            }

                break;

            default:

                NSLog(@"支付失敗,retcode=%d",resp.errCode);

                break;

        }

        

    }

}

5.在需要調用的地方進行調用

- (void)weixinPay{

    PayReq *req = [[PayReq alloc] init];

    //實際項目中這些參數都是通過網絡請求後臺得到的,詳情見以下注釋,測試的時候可以讓後臺將價格改爲1分錢

    req.openID = @"appid";//微信開放平臺審覈通過的AppID

    req.partnerId = @"partnerid";//微信支付分配的商戶ID

    req.prepayId = @"prepayid";// 預支付交易會話ID

    req.nonceStr =@"noncestr";//隨機字符串

   // req.timeStamp = @"timestamp";//當前時間

    req.package = @"package";//固定值

    req.sign =@"sign";//簽名,除了sign,剩下6個組合的再次簽名字符串

    

    if ([WXApi isWXAppInstalled] == YES) {

        //此處會調用微信支付界面

        BOOL sss =   [WXApi sendReq:req];

        if (!sss ) {

           // [MBManager showMessage:@"微信sdk錯誤" inView:weakself.view afterDelayTime:2];

        }

    }else {

        //微信未安裝

       // [MBManager showMessage:@"您沒有安裝微信" inView:weakself.view afterDelayTime:2];

    }

}


二、手動集成SDK

請到微信開放平臺下載SDK

下載微信SDK

建議把iOS頭文件和支付示例都下載下來

1.導入上面那個iOS頭文件和庫下載下載出來的SDK包的就行,然後需要鏈接上依賴庫,在Target —> BuildPhases —> Link Binary With Libraries— 點擊+號 -> 搜索你需要的系統庫。

  • SystemConfiguration.framework
  • libz.tbd
  • libsqlite3.0.tbd
  • CoreTelephony.framework
  • QuartzCore.framework
2.剩下的步驟參照cocopods第三步

demo地址,碼字寫demo不容易,歡迎指點,喜歡的動動小手給顆星點擊下載demo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章