2.導入微信支付SDK
將官方demo中的這個文件夾拷貝到項目裏
在APPdelegate裏設置APPID
導入依賴庫
項目中點擊支付的按鈕寫上如下方法
別忘了導入頭文件和遵循代理和註冊代理?
info.plist裏添加如下字段LSApplicationQueriesSchemes,為Array類型,然後在裏面添加兩個小選項,分別為weixin和wechat
註意!!!下面這三處? 壹定要對應上? 少壹不可
如果不回調,APPdelegate裏寫上這個
//被廢棄的方法如下
- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url {
return? [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
}
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation {
return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
}
//替換的新方法
- (BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary*)options {
return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
}
//調起微信支付
PayReq* req? = [[PayReq alloc] init];
req.partnerId = @"1220277201";
req.prepayId? = @"9201039000160315ab9324b87b451223";
req.nonceStr? = @"83DB7tk21akNRSFs";
req.timeStamp = 1458027344;
req.package? = @"Sign=WXPay";
req.sign ? = @"db6919dbd8ccb3f8a25108bebcd87f7a02c52e39";
[WXApi sendReq:req];
// 獲取當前時間
time_t now;
time(&now);
// 時間戳
//NSString *timestamp = [NSString stringWithFormat:@"%ld", now];
// 隨機字符串
//NSString *nonceStr = [[self md5:timestamp] uppercaseString];
//訂單id
NSString *prepayid =? _prepayid;
PayReq *request = [[PayReq alloc] init];
/** 商家向財付通申請的商家id */
request.partnerId = WXPartnerid;
/** 預支付訂單 */
request.prepayId= prepayid;
/** 商家根據財付通文檔填寫的數據和簽名 */
request.package = @"Sign=WXPay";
/** 隨機串,防重發 */
request.nonceStr= _noncestr;
/** 時間戳,防重發 */
request.timeStamp = [_timestamp intValue];
/** 商家根據微信開放平臺文檔對數據做的簽名 */
request.sign= _sign;
/*! @brief 發送請求到微信,等待微信返回onResp
*
* 函數調用後,會切換到微信的界面。第三方應用程序等待微信返回onResp。微信在異步處理完成後壹定會調用onResp。支持以下類型
* SendAuthReq、SendMessageToWXReq、PayReq等。
* @param req 具體的發送請求,在調用函數後,請自己釋放。
* @return 成功返回YES,失敗返回NO。
*/
[WXApi sendReq: request];