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

小程序調(diào)起簽約api

應(yīng)用場(chǎng)景

商戶可以通過請(qǐng)求此接口喚起小程序委托代扣的簽約頁(yè)面,頁(yè)面樣例見案例與規(guī)范

用戶在微信的頁(yè)面中完成代扣簽約后,微信會(huì)同時(shí)將簽約信息通過異步通知的方式通知給商戶后臺(tái)。如果用戶放棄簽約或簽約失敗則不通知。

商戶流程介紹

  1. 1.用戶從商戶小程序發(fā)起簽約請(qǐng)求 (商戶需確認(rèn)委托代扣權(quán)限已開通,模板已審批通過,小程序APPID與商戶號(hào)已綁定)
  2. 2.商戶將簽約請(qǐng)求參數(shù)按照規(guī)則拼接之后,通過小程序跳轉(zhuǎn),向簽約小程序發(fā)起簽約請(qǐng)求
  3. 3.用戶在微信簽約小程序選擇支付方式完成簽約
  4. 4.微信將簽約結(jié)果返回給商戶

接口調(diào)用請(qǐng)求說(shuō)明

接口

wx.navigateToMiniProgram(OBJECT)接口

說(shuō)明

iOS 微信客戶端 6.5.9 版本開始支持,Android 客戶端即將在 6.5.10 版本開始支持

OBJECT參數(shù)說(shuō)明:

字段含義 變量名 必填 示例值 類型 描述

微信簽約小程序appid

appId

wxbd687630cd02ce1d

String

固定值
wxbd687630cd02ce1d

-場(chǎng)景信息傳遞給小程序的數(shù)據(jù)

extraData

{"appid":"wx0317c726bd1c1111","mch_id":"1900000000","sub_mch_id":"1900000001","notify_url":"https://www.qq.com/a.php","contract_code":"2017121216136aa","contract_display_account":"張三","plan_id":"72803","request_serial":"1000","timestamp":"1513065696","sign":"63EE946A87EE1C8F6C12C1DB085C8B7E"}

object

簽約的請(qǐng)求參數(shù),詳情見extraData字段詳細(xì)說(shuō)明

--商戶號(hào)

mch_id

10000098

String(32)

微信支付分配的商戶號(hào)

--子商戶號(hào)

sub_mch_id

10000097

String(32)

微信支付分配的子商戶號(hào)

--公眾賬號(hào)id

appid

wxcbda96de0b165486

String(32)

服務(wù)商商戶號(hào)綁定的appid

--子公眾賬號(hào)id

sub_appid

wxcbda96de0b165484

String(32)

子商戶號(hào)綁定的appid

--模板id

plan_id

123

String(28)

協(xié)議模板id

--簽約協(xié)議號(hào)

contract_code

100001256

String(128)

商戶側(cè)的簽約協(xié)議號(hào),由商戶生成,商戶側(cè)須唯一

--請(qǐng)求序列號(hào)

request_serial

1695

int(64)

商戶請(qǐng)求簽約時(shí)的序列號(hào)。序列號(hào)主要用于排序,不作為查詢條件,純數(shù)字。長(zhǎng)度不超過12位

--用戶賬戶展示名稱

contract_display_account

張三

String(128)

簽約用戶的名稱,用于頁(yè)面展示,不需要對(duì)值進(jìn)行urlencode,參數(shù)值不支持UTF8非3字節(jié)編碼的字符,例如表情符號(hào),所以請(qǐng)勿傳微信昵稱到該字段

--回調(diào)通知url

notify_url

http://yoursite.com

String(32)

HTTP或者HTTPS開頭的回調(diào)通知url ,不需要對(duì)值進(jìn)行urlencode

--簽名

sign

E1EE61A91C8E90F299DE6AE075D60A2D

String(32)

注:是對(duì)extraData內(nèi)所有參數(shù)按照簽名生成算法做簽名,所有參數(shù)都是encode前的值參與簽名
簽名規(guī)則詳見簽名生成算法

--時(shí)間戳

timestamp

1414488825

String(10)

系統(tǒng)當(dāng)前時(shí)間,定義規(guī)則詳見時(shí)間戳

--商戶側(cè)用戶標(biāo)識(shí)

outerid

 

String

用戶在商戶側(cè)的標(biāo)識(shí)

打開小程序的頁(yè)面路徑

path

pages/index/index

string

固定值:pages/index/index

接口調(diào)用成功的回調(diào)函數(shù)

success

 

Function

 

接口調(diào)用失敗的回調(diào)函數(shù)

fail

 

Function

 

接口調(diào)用結(jié)束的回調(diào)函數(shù)

complete

 

Function

調(diào)用成功、失敗都會(huì)執(zhí)行


示例:
wx.navigateToMiniProgram({
    appId:'wxbd687630cd02ce1d',
    path:'pages/index/index',
    extraData:{
        appid:'wx426a3015555a46be',
        contract_code:'122',
        contract_display_account:'張三',
        mch_id:'1223816102',
        sub_mch_id:'1223816104',
        notify_url:'https://www.qq.com/test/papay',
        plan_id:'106',
        request_serial:'123',
        timestamp:1414488825,
        sign:'FF1A406564EE701064450CA2149E2514'
    },
success(res) {
    // 成功跳轉(zhuǎn)到簽約小程序
},
fail(res) {
    // 未成功跳轉(zhuǎn)到簽約小程序
}
})

用戶簽約完成之后,會(huì)跳轉(zhuǎn)回商戶小程序,可通過onShow(OBJECT)所攜帶的參數(shù)判斷判斷用戶由簽約小程序返回商戶小程序,OBJECT返回參數(shù)請(qǐng)查看小程序開發(fā)文檔onShow參數(shù)說(shuō)明

referrerInfo.extraData字段說(shuō)明

返回碼 變量名 必填 示例值 類型 描述

返回碼

return_code

SUCCESS

String

客戶端小程序收到的簽約結(jié)果

SUCCESS:簽約成功

FAIL:簽約失敗

錯(cuò)誤信息

return_msg

 

String

簽約失敗的錯(cuò)誤信息

委托代扣協(xié)議id

contract_id

201710180325670965

String

簽約成功后微信返回的委托代扣協(xié)議id

注意:如果用戶正常點(diǎn)擊微信簽約頁(yè)的確定按鈕返回商戶小程序,那么會(huì)返回extraData ; 如果用戶點(diǎn)擊瀏覽器左上角的返回,則不返回extraData


示例:

App({
    onShow(res) {
        if (res.scene === 1038) { // 場(chǎng)景值1038:從被打開的小程序返回
            const { appId, extraData } = res.referrerInfo
            if (appId == 'wxbd687630cd02ce1d') { // appId為wxbd687630cd02ce1d:從簽約小程序跳轉(zhuǎn)回來(lái)
                if (typeof extraData == 'undefined'){
                    // TODO
                    // 客戶端小程序不確定簽約結(jié)果,需要向商戶側(cè)后臺(tái)請(qǐng)求確定簽約結(jié)果
                    return;
                }
                if(extraData.return_code == 'SUCCESS'){
                    // TODO
                    // 客戶端小程序簽約成功,需要向商戶側(cè)后臺(tái)請(qǐng)求確認(rèn)簽約結(jié)果
                    var contract_id = extraData.contract_id
                    return;
                } else {
                    // TODO
                    // 簽約失敗
                    return;
                }
            }
        }
    }
})


返回參數(shù)(異步返回)

簽約成功后,微信會(huì)把相關(guān)簽約結(jié)果異步發(fā)送給商戶,返回的url為調(diào)用上述簽約接口時(shí)填寫的notify_url字段。商戶在收到簽約結(jié)果通知后,需進(jìn)行接收處理并返回應(yīng)答
對(duì)后臺(tái)通知交互時(shí),如果微信收到商戶的應(yīng)答不是成功或超時(shí),微信認(rèn)為通知失敗,微信會(huì)通過一定的策略定期重新發(fā)起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。
(通知頻率為15/15/30/180/1800/1800/1800/1800/3600,單位:秒)
由于存在重新發(fā)送后臺(tái)通知的情況,因此同樣的通知可能會(huì)多次發(fā)送給商戶系統(tǒng)。商戶系統(tǒng)必須能夠正確處理重復(fù)的通知。
推薦的做法是,當(dāng)收到通知進(jìn)行處理時(shí),首先檢查對(duì)應(yīng)業(yè)務(wù)數(shù)據(jù)的狀態(tài),判斷該通知是否已經(jīng)處理過,如果沒有處理過再進(jìn)行處理,如果處理過直接返回結(jié)果成功。在對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行狀態(tài)檢查和處理之前,要采用數(shù)據(jù)鎖進(jìn)行并發(fā)控制,以避免函數(shù)重入造成的數(shù)據(jù)混亂。

字段名 變量名 必填 示例值 類型 說(shuō)明

返回狀態(tài)碼

return_code

SUCCESS

String(16)

SUCCESS/FAIL
此字段是通信標(biāo)識(shí),非交易標(biāo)識(shí),交易是否成功需要查看result_code來(lái)判斷

返回信息

return_msg

簽名失敗

String(128)

返回信息,如非空,為錯(cuò)誤原因
簽名失敗
參數(shù)格式校驗(yàn)錯(cuò)誤

以下字段在return_code為SUCCESS的時(shí)候返回

業(yè)務(wù)結(jié)果

result_code

SUCCESS

String(16)

SUCCESS/FAIL

以下字段在return_code 和result_code都為SUCCESS的時(shí)候有返回

商戶號(hào)

mch_id

10000098

String(32)

微信支付分配的商戶號(hào)

子商戶號(hào) sub_mch_id

1900000109 String(32) 微信支付分配的子商戶號(hào)

簽約協(xié)議號(hào)

contract_code

100001256

String(128)

簽約協(xié)議號(hào)

模板id

plan_id

123

String

協(xié)議模板id

用戶標(biāo)識(shí)

openid

onqOjjmM1tad-3ROpncN-yUfa6ua

String(32)

Appid下,用戶的唯一標(biāo)識(shí)

用戶子標(biāo)識(shí) sub_openid

oUpF8uMuAJO_M2pxb1Q9zNjWeS6o String(32) sub_appid下,用戶的唯一標(biāo)識(shí)

簽名

sign

C380BEC2BFD727A4B6845133519F3AD6

String(32)

詳見簽名生成算法

變更類型

change_type

ADD

String(32)

有兩個(gè)變更類型取值:
ADD--簽約
DELETE--解約

操作時(shí)間

operate_time

2015-07-01 10:00:00

String

操作時(shí)間

委托代扣協(xié)議id

contract_id

Wx15463511252015071056489715

String(32)

簽約成功后,微信返回的委托代扣協(xié)議id

協(xié)議到期時(shí)間

contract_expired_time

2016-07-01 10:00:00

String

協(xié)議到期時(shí)間

請(qǐng)求序列號(hào)

request_serial

1695

String

商戶請(qǐng)求簽約時(shí)的序列號(hào),商戶側(cè)須唯一,純數(shù)字。長(zhǎng)度不超過12位

示例:

<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<result_code><![CDATA[SUCCESS]]></result_code>
<sign><![CDATA[C380BEC2BFD727A4B6845133519F3AD6]]></sign>
<mch_id>10010404</mch_id>
<sub_mch_id>10010405</sub_mch_id>
<contract_code>100001256</contract_code>
<openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6ua]]></openid>
<plan_id><![CDATA[123]]></plan_id>
<change_type><![CDATA[ADD]]></change_type>
<operate_time><![CDATA[2015-07-01 10:00:00]]></operate_time>
<contract_id><![CDATA[Wx15463511252015071056489715]]></contract_id>
</xml>

商戶需返回參數(shù)

由于微信會(huì)多次通知商戶服務(wù)器關(guān)于用戶簽約的結(jié)果和相關(guān)信息,為了避免給商戶服務(wù)器造成過大的壓力,請(qǐng)?jiān)诘玫轿⑿藕灱s結(jié)果通知之后,返回以下內(nèi)容。(請(qǐng)求方式:post)

字段名 變量名 必填 示例值 類型 說(shuō)明

返回狀態(tài)碼

return_code

SUCCESS

String(16)

SUCCESS/FAIL
SUCCESS表示商戶接收通知成功并校驗(yàn)成功

返回信息

return_msg

OK

String(32)

返回信息,如非空,為錯(cuò)誤原因
簽名失敗
參數(shù)格式校驗(yàn)錯(cuò)誤

商戶返回示例:

<xml>
? <return_code><![CDATA[SUCCESS]]></return_code>
  <return_msg><![CDATA[OK]]></return_msg>
</xml>
微信支付簽約,解約通知出口IP列表

如果商戶側(cè)配置了防火墻,需要對(duì)商戶回調(diào)通知功能開通下面白名單網(wǎng)段:
101.226.233.128/25