Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 微信支付

微信支付

編輯:關於Android編程

微信支付

首先還是要下載好SDK,導入相關庫,配置好一些環境,接著就開始做支付

 

服務器簽名版

首先在AppDelegate.m裡面注冊微信的key

 

[WXApi registerApp:@"appkey" withDescription:@"wxdemo"];

然後處理微信的跳轉,記得配置好url schemes

 

 

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

    if ([url.host isEqualToString:@"pay"]) {
        [WXApi handleOpenURL:url delegate:self];
        
        return YES;
    }
}


 

然後在點擊微信支付按鈕裡這樣寫(以下用到的所有參數均是服務器返回的)

//微信支付
- (void)weixinpay {
    
    PayReq *request = [[PayReq alloc] init];
    request.partnerId = partnerid;           //商家向財付通申請的商家id
    request.prepayId = prepayid;             //預支付訂單
    request.nonceStr = noncestr;             //隨機串,防重發
    request.timeStamp = timestamp.intValue;  //時間戳,防重發
    request.package = package;               //商家根據財付通文檔填寫的數據和簽名(Sign=WXPay)
    request.sign = sign;                     //商家根據微信開放平台文檔對數據做的簽名
    
    [WXApi sendReq:request];
    
}

完成支付之後,會來到這個回調,我們再根據回調處理結果即可

 

 

-(void)onResp:(BaseResp *)resp {
    
    switch (resp.errCode) {
        case WXSuccess:
            NSLog(@"支付成功-PaySuccess,retcode = %d", resp.errCode);
            
        default:
            NSLog(@"支付錯誤,retcode = %d, retstr = %@", resp.errCode,resp.errStr);
    }
}

 

如果這樣寫完還是沒有支付成功,那麼90%是後台返回來的參數有問題,叫後台去查查吧

另外有可能會出現調起微信,但只有一個確定按鈕的情況

上面那位兄弟已經寫得非常詳細了,如果他帖子裡的方法試完了還是沒有解決,那就下載下面這位大神寫的demo,跟服務器返回給你的參數一一對比,看是哪個地方出現了問題

本地簽名版本

本地簽名無非就是多了個簽名的步驟,用微信demo裡的方法,或者上面@狂龍天使的demo,研究一下就可以做出來,我這就不寫了。

以上

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved