訂單collection.state為USER_PAYING待支付狀態(tài)時(shí),如果用戶通過(guò)其他渠道支付了,商戶可調(diào)用該接口將支付分訂單改為已完成狀態(tài)。
注:
1.待支付狀態(tài)的訂單,若用戶正在通過(guò)支付分訂單頁(yè)拉起收銀臺(tái)主動(dòng)支付或者支付分正在進(jìn)行自動(dòng)扣款時(shí),調(diào)用同步支付分訂單API可能會(huì)出現(xiàn)"單據(jù)正在扣款中,請(qǐng)稍后再試"的報(bào)錯(cuò),可等待3min后重試。
2.如果用戶通過(guò)其他渠道支付后,支付分訂單又同時(shí)扣款成功出現(xiàn)重復(fù)支付情況,商戶選擇任意渠道退款即可。
# 接口說(shuō)明
支持商戶:
【普通商戶】
請(qǐng)求方式:
【POST】/v3/payscore/serviceorder/{out_order_no}/sync
請(qǐng)求域名:
【主域名】
https://api.mch.weixin.qq.com
使用該域名將訪問(wèn)就近的接入點(diǎn)【備域名】
https://api2.mch.weixin.qq.com
使用該域名將訪問(wèn)異地的接入點(diǎn) ,指引點(diǎn)擊查看
# 請(qǐng)求參數(shù)
- Authorization 必填 string請(qǐng)參考 簽名認(rèn)證 生成認(rèn)證信息
- Accept 必填 string請(qǐng)?jiān)O(shè)置為
application/json
- Content-Type 必填 string請(qǐng)?jiān)O(shè)置為
application/json
Header HTTP頭參數(shù)
- out_order_no 必填 string(32)【商戶服務(wù)訂單號(hào)】 商戶系統(tǒng)內(nèi)部服務(wù)訂單號(hào),商戶在創(chuàng)建支付分接口中填入的out_order_no參數(shù)。
Path 路徑參數(shù)
- appid 必填 string(32)【公眾賬號(hào)ID】 是微信開(kāi)放平臺(tái)和微信公眾平臺(tái)為開(kāi)發(fā)者的應(yīng)用程序(APP、小程序、公眾號(hào))提供的一個(gè)唯一標(biāo)識(shí)。 開(kāi)發(fā)者需要先在微信開(kāi)放平臺(tái)或微信公眾平臺(tái)中申請(qǐng)ID,然后在商戶平臺(tái)中綁定,詳見(jiàn)直連商戶與AppID賬號(hào)關(guān)聯(lián)管理
。完結(jié)訂單和取消訂單需要和創(chuàng)單傳入的appid保持一致。 - service_id 必填 string(32)【服務(wù)ID】 商戶支付分服務(wù)的唯一標(biāo)識(shí),由32位數(shù)字組成。支付分產(chǎn)品權(quán)限審核通過(guò)后,微信支付運(yùn)營(yíng)會(huì)向商戶提供該ID。
- type 必填 string【場(chǎng)景類(lèi)型】 收款場(chǎng)景,商戶固定傳“Order_Paid”,表示訂單收款成功。
- detail 必填 SyncDetail【內(nèi)容信息詳情】 訂單的收款信息詳情,type=Order_Paid時(shí)為必填項(xiàng)。
- 屬性
Body 包體參數(shù)
請(qǐng)求示例
POST
# 應(yīng)答參數(shù)
- out_order_no 必填 string(32)【商戶服務(wù)訂單號(hào)】 商戶系統(tǒng)內(nèi)部服務(wù)訂單號(hào),商戶在創(chuàng)建支付分接口中填入的out_order_no參數(shù)。
- service_id 必填 string(32)【服務(wù)ID】 商戶支付分服務(wù)的唯一標(biāo)識(shí),由32位數(shù)字組成。支付分產(chǎn)品權(quán)限審核通過(guò)后,微信支付運(yùn)營(yíng)會(huì)向商戶提供該ID。
- appid 必填 string(32)【服務(wù)商公眾號(hào)ID】 是微信開(kāi)放平臺(tái)和微信公眾平臺(tái)為開(kāi)發(fā)者的應(yīng)用程序(APP、小程序、公眾號(hào))提供的一個(gè)唯一標(biāo)識(shí)。 開(kāi)發(fā)者需要先在微信開(kāi)放平臺(tái)或微信公眾平臺(tái)中申請(qǐng)ID,然后在商戶平臺(tái)中綁定,詳見(jiàn)直連商戶與AppID賬號(hào)關(guān)聯(lián)管理
。完結(jié)訂單和取消訂單需要和創(chuàng)單傳入的appid保持一致。 - mchid 必填 string(32)【服務(wù)商商戶號(hào)】 調(diào)用支付分創(chuàng)單接口提交的商戶號(hào),商戶號(hào)需開(kāi)通支付分產(chǎn)品權(quán)限,且與appid有綁定關(guān)系,詳見(jiàn)直連商戶與AppID賬號(hào)關(guān)聯(lián)管理
。 - service_introduction 必填 string(20)【服務(wù)信息】 用于介紹本訂單所提供的服務(wù) ,長(zhǎng)度不能超過(guò)20個(gè)字符(漢字、數(shù)字、字母、特殊符號(hào)都按照1個(gè)字符計(jì)算)。
- state 必填 string(32)【服務(wù)訂單狀態(tài)】 表示支付分訂單狀態(tài)
CREATED:商戶已創(chuàng)建服務(wù)訂單
DOING:服務(wù)訂單進(jìn)行中
DONE:服務(wù)訂單完成(終態(tài))
REVOKED:商戶取消服務(wù)訂單(終態(tài))
EXPIRED:服務(wù)訂單已失效,"商戶已創(chuàng)建服務(wù)訂單"狀態(tài)超過(guò)30天未變動(dòng),則訂單失效(終態(tài))
該狀態(tài)需結(jié)合collection.state字段和state_description字段一起判斷,具體可參考支付分訂單狀態(tài)流轉(zhuǎn)圖。 - state_description 選填 string(32)【訂單狀態(tài)說(shuō)明】 此參數(shù)用于對(duì)服務(wù)訂單處于DOING狀態(tài)時(shí)的附加說(shuō)明,非DOIING狀態(tài)將不會(huì)返回該參數(shù)。具體狀態(tài)如下:
USER_CONFIRM:用戶已確認(rèn)狀態(tài),表示用戶成功確認(rèn)訂單后所處狀態(tài)。
MCH_COMPLETE:商戶已完結(jié)狀態(tài),指商戶調(diào)用完結(jié)接口成功后至扣款成功前的狀態(tài)。
該狀態(tài)需結(jié)合collection.state字段和state字段一起判斷,具體可參考支付分訂單狀態(tài)流轉(zhuǎn)圖。 - post_payments 選填 array[Payment]【后付費(fèi)項(xiàng)目】 調(diào)用接口傳入的后付費(fèi)項(xiàng)目
- 屬性
- post_discounts 選填 array[ServiceOrderCoupon]【商戶優(yōu)惠】 用于展示訂單優(yōu)惠項(xiàng)目明細(xì),最多30條,完結(jié)訂單時(shí)傳的收款總金額需滿足計(jì)算條件(收款總金額=后付費(fèi)項(xiàng)目amount和-優(yōu)惠項(xiàng)目amount和)
- 屬性
- risk_fund 選填 RiskFund【服務(wù)風(fēng)險(xiǎn)金】 本筆訂單的風(fēng)險(xiǎn)金額描述
- 屬性
- total_amount 選填 integer【總金額】 訂單最終收款總金額,整型,單位為分,商戶調(diào)用完結(jié)訂單接口和修改訂單金額接口傳入,受服務(wù)ID風(fēng)險(xiǎn)金額上限影響,服務(wù)ID風(fēng)險(xiǎn)金額上限具體請(qǐng)與BD確認(rèn)。
先免模式:total_amount<=創(chuàng)單risk_fund.amount(押金金額)<=服務(wù)ID風(fēng)險(xiǎn)金額上限。
先享模式:total_amount<=服務(wù)ID風(fēng)險(xiǎn)金額上限。 需滿足計(jì)算條件:total_amount = 后付費(fèi)項(xiàng)目金額(post_payments.amount總和) - 優(yōu)惠項(xiàng)目金額(post_discounts.amount總和),例如商戶后付費(fèi)項(xiàng)目金額總和為10元,優(yōu)惠項(xiàng)目金額總和為2元,則訂單收款總金額為8元。 - need_collection 選填 boolean【是否需要收款】 調(diào)用接口傳入的是否需要收款,true:微信支付分代收款 false:無(wú)需微信支付分代收款
- collection 選填 Collection【收款信息】 訂單是否需要收款,固定返回true需收款。
- 屬性
- time_range 選填 TimeRange【服務(wù)時(shí)間】 用于描述訂單的服務(wù)開(kāi)始和結(jié)束時(shí)間。
- 屬性
- location 選填 Location【服務(wù)位置】 服務(wù)使用的開(kāi)始位置和結(jié)束位置
- 屬性
- attach 選填 string(256)【附加數(shù)據(jù)】 商戶在創(chuàng)建訂單時(shí)傳入的自定義數(shù)據(jù)包,用戶不可見(jiàn)。用于存放訂單的商戶自定義數(shù)據(jù),需要先進(jìn)行urlencode編碼,總長(zhǎng)度不超過(guò)256字符。確認(rèn)訂單回調(diào)和支付成功回調(diào)時(shí)會(huì)回傳該字段給商戶。
- notify_url 選填 string(256)【商戶回調(diào)地址】 商戶接收確認(rèn)訂單回調(diào)通知和支付成功回調(diào)通知的地址,創(chuàng)單時(shí)傳入,需按照notify-url填寫(xiě)注意事項(xiàng)
規(guī)范填寫(xiě)。 - openid 必填 string(128)【服務(wù)商公眾號(hào)下的用戶標(biāo)識(shí)】 用戶在商戶對(duì)應(yīng)appid下的唯一標(biāo)識(shí)。
- order_id 必填 string(64)【微信支付服務(wù)訂單號(hào)】 支付分訂單在微信側(cè)的唯一標(biāo)識(shí),31位數(shù)字,開(kāi)頭由1000000000+年月日組成。
200OK
應(yīng)答示例
200 OK
# 錯(cuò)誤碼
# 公共錯(cuò)誤碼
狀態(tài)碼 | 錯(cuò)誤碼 | 描述 | 解決方案 |
---|---|---|---|
400 | PARAM_ERROR | 參數(shù)錯(cuò)誤 | 請(qǐng)根據(jù)錯(cuò)誤提示正確傳入?yún)?shù) |
400 | INVALID_REQUEST | HTTP 請(qǐng)求不符合微信支付 APIv3 接口規(guī)則 | 請(qǐng)參閱 接口規(guī)則 |
401 | SIGN_ERROR | 驗(yàn)證不通過(guò) | 請(qǐng)參閱 簽名常見(jiàn)問(wèn)題 |
500 | SYSTEM_ERROR | 系統(tǒng)異常,請(qǐng)稍后重試 | 請(qǐng)稍后重試 |
# 業(yè)務(wù)錯(cuò)誤碼
狀態(tài)碼 | 錯(cuò)誤碼 | 描述 | 解決方案 |
---|---|---|---|
400 | INVALID_ORDER_STATE | 單據(jù)狀態(tài)錯(cuò)誤 | 確認(rèn)操作是否符合流程 |
400 | INVALID_REQUEST | 請(qǐng)求參數(shù)符合參數(shù)格式,但不符合業(yè)務(wù)規(guī)則 | 請(qǐng)確認(rèn)相同單號(hào)是否使用了不同的參數(shù) |
400 | ORDER_CANCELED | 單據(jù)已取消 | 當(dāng)前狀態(tài)無(wú)需操作 |
400 | ORDER_DONE | 訂單已完成 | 當(dāng)前狀態(tài)無(wú)需操作 |
403 | NO_AUTH | 商戶信息不合法 | 登錄商戶平臺(tái)核對(duì),傳入正確信息 |
404 | ORDER_NOT_ EXIST | 訂單不存在 | 確認(rèn)入?yún)ⅲ瑐魅胝_單據(jù) |
429 | FREQUENCY_LIMITED | 頻率超限 | 請(qǐng)求量不要超過(guò)接口調(diào)用頻率限制 |
500 | SYSTEM_ERROR | 系統(tǒng)錯(cuò)誤 | 5開(kāi)頭的狀態(tài)碼都為系統(tǒng)問(wèn)題,請(qǐng)使用相同參數(shù)稍后重新調(diào)用 |