视频一区二区三区自拍_千金肉奴隷1985未删减版在线观看_国产成人黄色视频在线播放_少女免费播放片高清在线观看_国产精品v欧美精品v

APP端開發(fā)步驟

IOS系統(tǒng)opensdk升級(jí)指引

由于蘋果公司在iOS13系統(tǒng)回收了查詢 App bundleID 的能力,導(dǎo)致微信無法保證授權(quán)憑證能正確返回給AppID對(duì)應(yīng)的應(yīng)用。為此,微信支付強(qiáng)烈要求所有商戶盡快升級(jí)到OpenSDK1.8.6,并讓用戶及時(shí)更新APP,否則安全風(fēng)險(xiǎn)將一直存在。謝謝配合!

詳細(xì)OpenSDK升級(jí)指引請(qǐng)參見:opensdk升級(jí)指引

注意:opensdk升級(jí)后請(qǐng)一定按照文檔要求完成驗(yàn)證工作,確保opensdk升級(jí)成功。

IOS開發(fā)要點(diǎn)說明
(以上截圖來自opensdk升級(jí)指引)

IOS開發(fā)要點(diǎn)說明

以下項(xiàng)目開發(fā)環(huán)境以Xcode6.0,運(yùn)行環(huán)境為IOS7.0為例,說明其開發(fā)中需要的操作。

1、項(xiàng)目設(shè)置APPID

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

IOS開發(fā)要點(diǎn)說明

圖8.7

2、注冊(cè)APPID

商戶APP工程中引入微信lib庫和頭文件,調(diào)用API前,需要先向微信注冊(cè)您的APPID,代碼如下:

[WXApi registerApp:@"wxd930ea5d5a258f4f" withDescription:@"demo 2.0"];

3、調(diào)起支付

商戶服務(wù)器生成支付訂單,先調(diào)用【統(tǒng)一下單API】生成預(yù)付單,獲取到prepay_id后將參數(shù)再次簽名傳輸給APP發(fā)起支付。以下是調(diào)起微信支付的關(guān)鍵代碼:


PayReq *request = [[[PayReq alloc] init] autorelease];
request.partnerId = @"10000100";
request.prepayId= @"1101000000140415649af9fc314aa427";
request.package = @"Sign=WXPay";
request.nonceStr= @"a462b76e7436e98e0ed6e13c64b4fd1c";
request.timeStamp= @"1397527777";
request.sign= @"582282D72DD2B03AD892830965F428CB16E7A256";
[WXApi sendReq:request];

注意:該sign生成字段名列表見調(diào)起支付API

4、支付結(jié)果回調(diào)

照微信SDK Sample,在類實(shí)現(xiàn)onResp函數(shù),支付完成后,微信APP會(huì)返回到商戶APP并回調(diào)onResp函數(shù),開發(fā)者需要在該函數(shù)中接收通知,判斷返回錯(cuò)誤碼,如果支付成功則去后臺(tái)查詢支付結(jié)果再展示用戶實(shí)際支付結(jié)果。注意 一定不能以客戶端返回作為用戶支付的結(jié)果,應(yīng)以服務(wù)器端的接收的支付通知或查詢API返回的結(jié)果為準(zhǔn)。代碼示例如下:


-(void)onResp:(BaseResp*)resp{
  if ([respisKindOfClass:[PayRespclass]]){
      PayResp*response=(PayResp*)resp;
      switch(response.errCode){
          caseWXSuccess:
          			//服務(wù)器端查詢支付通知或查詢API返回的結(jié)果再提示成功
          			NSlog(@"支付成功");
          	break;
          	default:
          	NSlog(@"支付失敗,retcode=%d",resp.errCode);
          	break;
      }
      	}
    } 

回調(diào)中errCode值列表:

名稱 描述 解決方案
0 成功 展示成功頁面
-1 錯(cuò)誤 可能的原因:簽名錯(cuò)誤、未注冊(cè)APPID、項(xiàng)目設(shè)置APPID不正確、注冊(cè)的APPID與設(shè)置的不匹配、其他異常等。
-2 用戶取消 無需處理。發(fā)生場(chǎng)景:用戶不支付了,點(diǎn)擊取消,返回APP。

Android開發(fā)要點(diǎn)說明

1、后臺(tái)設(shè)置

商戶在微信開放平臺(tái)申請(qǐng)開發(fā)應(yīng)用后,微信開放平臺(tái)會(huì)生成APP的唯一標(biāo)識(shí)APPID。由于需要保證支付安全,需要在開放平臺(tái)綁定商戶應(yīng)用包名和應(yīng)用簽名,設(shè)置好后才能正常發(fā)起支付。設(shè)置界面在【開放平臺(tái)】中的欄目【管理中心 / 修改應(yīng)用 / 修改開發(fā)信息】里面,如圖8.8紅框內(nèi)所示。

修改開發(fā)信息

圖8.8

應(yīng)用包名:是在APP項(xiàng)目配置文件AndroidManifest.xml中聲明的package值,例如DEMO中的package="net.sourceforge.simcpux"。

應(yīng)用簽名:根據(jù)項(xiàng)目的應(yīng)用包名和編譯使用的keystore,可由簽名工具生成一個(gè)32位的md5串,在調(diào)試的手機(jī)上安裝簽名工具后,運(yùn)行可生成應(yīng)用簽名串,如圖8.9所示,綠色串即應(yīng)用簽名。 點(diǎn)擊下載簽名生成工具

修改開發(fā)信息

圖8.9

2、注冊(cè)APPID

商戶APP工程中引入微信JAR包,調(diào)用API前,需要先向微信注冊(cè)您的APPID,代碼如下:

final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);

// 將該app注冊(cè)到微信

msgApi.registerApp("wxd930ea5d5a258f4f");

3、調(diào)起支付

商戶服務(wù)器生成支付訂單,先調(diào)用統(tǒng)一下單API(詳見第7節(jié))生成預(yù)付單,獲取到prepay_id后將參數(shù)再次簽名傳輸給APP發(fā)起支付。以下是調(diào)起微信支付的關(guān)鍵代碼:


IWXAPI api;
PayReq request = new PayReq();
request.appId = "wxd930ea5d5a258f4f";
request.partnerId = "1900000109";
request.prepayId= "1101000000140415649af9fc314aa427";
request.packageValue = "Sign=WXPay";
request.nonceStr= "1101000000140429eb40476f8896f4c9";
request.timeStamp= "1398746574";
request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
api.sendReq(request);

注意:該sign生成字段名列表見調(diào)起支付API

4、支付結(jié)果回調(diào)

參照微信SDK Sample,在net.sourceforge.simcpux.wxapi包路徑中實(shí)現(xiàn)WXPayEntryActivity類(包名或類名不一致會(huì)造成無法回調(diào)),在WXPayEntryActivity類中實(shí)現(xiàn)onResp函數(shù),支付完成后,微信APP會(huì)返回到商戶APP并回調(diào)onResp函數(shù),開發(fā)者需要在該函數(shù)中接收通知,判斷返回錯(cuò)誤碼,如果支付成功則去后臺(tái)查詢支付結(jié)果再展示用戶實(shí)際支付結(jié)果。注意一定不能以客戶端返回作為用戶支付的結(jié)果,應(yīng)以服務(wù)器端的接收的支付通知或查詢API返回的結(jié)果為準(zhǔn)。代碼示例如下:


public void onResp(BaseRespresp){
  	if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){
  		Log.d(TAG,"onPayFinish,errCode="+resp.errCode);
  		AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
  		builder.setTitle(R.string.app_tip);
  	}
}

回調(diào)中errCode值列表:

名稱 描述 解決方案
0 成功 展示成功頁面
-1 錯(cuò)誤 可能的原因:簽名錯(cuò)誤、未注冊(cè)APPID、項(xiàng)目設(shè)置APPID不正確、注冊(cè)的APPID與設(shè)置的不匹配、其他異常等。
-2 用戶取消 無需處理。發(fā)生場(chǎng)景:用戶不支付了,點(diǎn)擊取消,返回APP。