欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

微信支付ios開(kāi)發(fā),iOS 微信支付開(kāi)發(fā)

iOS-APP實(shí)現(xiàn)微信H5支付總結(jié)

1、發(fā)起下單請(qǐng)求( 調(diào)用統(tǒng)一下單接口 )注:交易類型trade_type=MWEB

成都創(chuàng)新互聯(lián)公司是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計(jì)公司的優(yōu)秀設(shè)計(jì)人員和策劃人員組成的一個(gè)具有豐富經(jīng)驗(yàn)的團(tuán)隊(duì),其中包括網(wǎng)站策劃、網(wǎng)頁(yè)美工、網(wǎng)站程序員、網(wǎng)頁(yè)設(shè)計(jì)師、平面廣告設(shè)計(jì)師、網(wǎng)絡(luò)營(yíng)銷人員及形象策劃。承接:成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)站改版、網(wǎng)頁(yè)設(shè)計(jì)制作、網(wǎng)站建設(shè)與維護(hù)、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫(kù)開(kāi)發(fā),以高性價(jià)比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺(tái)等全方位的服務(wù)。

2、統(tǒng)一下單接口返回支付相關(guān)參數(shù)給商戶后臺(tái),如支付跳轉(zhuǎn)url(參數(shù)名“mweb_url”),商戶通過(guò)mweb_url調(diào)起微信支付中間頁(yè)。如: ;package=600759311redirect_url=http%3a%2f%2

3、中間頁(yè)進(jìn)行H5權(quán)限的校驗(yàn),安全性檢查( 具體錯(cuò)誤見(jiàn)微信官方文檔 )

4、如果權(quán)限校驗(yàn)成功,微信支付中間頁(yè)會(huì)發(fā)起支付請(qǐng)求。請(qǐng)求完畢跳到回調(diào)頁(yè)面(由redirect_url決定)。APP需要在webView中監(jiān)聽(tīng)這個(gè)請(qǐng)求,打開(kāi)微信進(jìn)行支付。如: weixin://wap/pay?prepayid%3Dwx2718114258281033efb8751f1574826586package=2965581453noncestr=1545905512sign=cb0f6dbd067549a04aada9c3eef09aac

5、微信支付完畢跳回APP。

HTTP Referer是header的一部分,當(dāng)瀏覽器向web服務(wù)器發(fā)起請(qǐng)求的時(shí),一般會(huì)帶上Referer,告訴服務(wù)器我是從哪個(gè)頁(yè)面鏈接過(guò)來(lái)。微信中間頁(yè)會(huì)對(duì)Referer進(jìn)行校驗(yàn),非安全域名將不能正常加載。

redirect_url是微信中間頁(yè)喚起微信支付之后,頁(yè)面重定向的地址。中間頁(yè)喚起微信支付后會(huì)跳轉(zhuǎn)到指定的redirect_url。并且微信APP在支付完成時(shí),也是通過(guò)redirect_url回調(diào)結(jié)果,redirect_url一般是一個(gè)頁(yè)面地址,所以微信支付完成會(huì)打開(kāi)Safari瀏覽器。本文通過(guò)修改redirect_url,實(shí)現(xiàn)微信支付完畢跳回當(dāng)前APP。

需要將微信H5支付的安全域名配置成scheme,微信支付完成會(huì)通過(guò)這個(gè)scheme跳轉(zhuǎn)回APP。

再shouldStartLoadWithRequest:方法里面攔截微信中間頁(yè)(以“ ”開(kāi)頭的請(qǐng)求),截取redirect_url,如果redirect_url已經(jīng)被替換成scheme不攔截,如果沒(méi)有被替換,攔截請(qǐng)求,保存當(dāng)前的redirect_url。創(chuàng)建一個(gè)新的微信中間頁(yè)請(qǐng)求,將redirect_url替換成“安全域名://”(微信支付完畢會(huì)通過(guò)openURL打開(kāi)當(dāng)前APP,如果不替換redirect_url,微信支付完畢會(huì)打開(kāi)Safari瀏覽器。)。設(shè)置“Referer”為安全域名(微信會(huì)校驗(yàn)Referer,不是安全域名會(huì)加載失敗),重新load請(qǐng)求。

微信中間頁(yè)加載成功后,會(huì)收到一個(gè)打開(kāi)微信的請(qǐng)求,用openURL:打開(kāi)這個(gè)url實(shí)現(xiàn)跳轉(zhuǎn)到微信支付。

微信中間頁(yè)跳轉(zhuǎn)到微信時(shí),會(huì)將頁(yè)面從定向到redirect_url,由于redirect_url被我們修改為scheme,所以需要攔截這個(gè)非法的scheme請(qǐng)求,替換成記錄下的redirect_url。

以UIWebView為例

還有一篇文章講的是H5支付封裝,H5支付不僅可以在網(wǎng)頁(yè)上使用,原生也可以調(diào)用。具體內(nèi)容見(jiàn): iOS-H5支付(微信、支付寶)原生封裝

iOSAPP端接入微信支付流程

商戶在微信開(kāi)放平臺(tái)申請(qǐng)開(kāi)發(fā)APP應(yīng)用后,微信開(kāi)放平臺(tái)會(huì)生成APP的唯一標(biāo)識(shí)APPID。在Xcode中打開(kāi)項(xiàng)目,設(shè)置項(xiàng)目屬性中的URL Schemes為您的APPID。如圖所示。

2.導(dǎo)入微信支付SDK

將官方demo中的這個(gè)文件夾拷貝到項(xiàng)目里

在APPdelegate里設(shè)置APPID

導(dǎo)入依賴庫(kù)

項(xiàng)目中點(diǎn)擊支付的按鈕寫上如下方法

別忘了導(dǎo)入頭文件和遵循代理和注冊(cè)代理??

info.plist里添加如下字段LSApplicationQueriesSchemes,為Array類型,然后在里面添加兩個(gè)小選項(xiàng),分別為weixin和wechat

注意!!!下面這三處? 一定要對(duì)應(yīng)上? 少一不可

如果不回調(diào),APPdelegate里寫上這個(gè)

//被廢棄的方法如下

- (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]];

}

//調(diào)起微信支付

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];

// 獲取當(dāng)前時(shí)間

time_t now;

time(now);

// 時(shí)間戳

//NSString *timestamp = [NSString stringWithFormat:@"%ld", now];

// 隨機(jī)字符串

//NSString *nonceStr = [[self md5:timestamp] uppercaseString];

//訂單id

NSString *prepayid =? _prepayid;

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

/** 商家向財(cái)付通申請(qǐng)的商家id */

request.partnerId = WXPartnerid;

/** 預(yù)支付訂單 */

request.prepayId= prepayid;

/** 商家根據(jù)財(cái)付通文檔填寫的數(shù)據(jù)和簽名 */

request.package = @"Sign=WXPay";

/** 隨機(jī)串,防重發(fā) */

request.nonceStr= _noncestr;

/** 時(shí)間戳,防重發(fā) */

request.timeStamp = [_timestamp intValue];

/** 商家根據(jù)微信開(kāi)放平臺(tái)文檔對(duì)數(shù)據(jù)做的簽名 */

request.sign= _sign;

/*! @brief 發(fā)送請(qǐng)求到微信,等待微信返回onResp

*

* 函數(shù)調(diào)用后,會(huì)切換到微信的界面。第三方應(yīng)用程序等待微信返回onResp。微信在異步處理完成后一定會(huì)調(diào)用onResp。支持以下類型

* SendAuthReq、SendMessageToWXReq、PayReq等。

* @param req 具體的發(fā)送請(qǐng)求,在調(diào)用函數(shù)后,請(qǐng)自己釋放。

* @return 成功返回YES,失敗返回NO。

*/

[WXApi sendReq: request];

Cocos creator ios開(kāi)發(fā)—微信支付(三)

目錄: Cocos creator ios開(kāi)發(fā)-接入微信SDK系列文章

這是官方文檔: app微信支付開(kāi)發(fā)文檔

第一步、

先接入微信SDK,請(qǐng)參考 Cocos creator ios開(kāi)發(fā)—接入微信SDK

第二步、

在Xcode的Info的設(shè)置項(xiàng)中,URL Types 的URL Schemes填寫APPID

在AppController.h中添加接口:

app啟動(dòng)時(shí),注冊(cè)APPID,在AppController.mm中的didFinishLaunchingWithOptions方法中調(diào)用

第三步、

向oc發(fā)送支付信息

第四步、

oc收到支付信息,發(fā)起支付

分享題目:微信支付ios開(kāi)發(fā),iOS 微信支付開(kāi)發(fā)
新聞來(lái)源:http://chinadenli.net/article24/dsgjgje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航網(wǎng)站收錄網(wǎng)站導(dǎo)航自適應(yīng)網(wǎng)站搜索引擎優(yōu)化手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名