最新更新時間:2020.03.05 版本說明
由于收款商戶進行的某些“線下操作”會導(dǎo)致微信支付側(cè)的訂單狀態(tài)與實際情況不符。例如,用戶通過線下付款的方式已經(jīng)完成支付,而微信支付側(cè)并未支付成功,此時可能導(dǎo)致用戶重復(fù)支付。因此商戶需要通過訂單同步接口將訂單狀態(tài)同步給微信支付,修改訂單在微信支付系統(tǒng)中的狀態(tài)。
? 待支付(USER_PAYING)狀態(tài)下,當用戶正在嘗試通過收銀臺主動支付訂單金額時,同步服務(wù)訂單信息API無法調(diào)用成功,可等待3min后重試
? API參數(shù)涉及時間參數(shù)時需注意,可能由于商戶時鐘系統(tǒng)和微信支付分時鐘系統(tǒng),取當前時間存在一定誤差。可能導(dǎo)致在API調(diào)用出現(xiàn)失敗情況。因此商戶在傳入時間參數(shù)時需預(yù)留一定誤差時間
適用對象:直連商戶
請求URL: https://api.mch.weixin.qq.com/v3/payscore/serviceorder/{out_order_no}/sync
請求方式:POST
前提條件:同步商戶渠道收款成功信息時,即場景類型=“Order_Paid”,訂單的狀態(tài)需為[MCH_COMPLETE:商戶完結(jié)訂單]
path 指該參數(shù)為路徑參數(shù)
query 指該參數(shù)需在請求URL傳參
body 指該參數(shù)需在請求JSON傳參
參數(shù)名 | 變量 | 類型[長度限制] | 必填 | 描述 |
---|---|---|---|---|
商戶服務(wù)訂單號 | out_order_no | string[1,32] | 是 | path
商戶系統(tǒng)內(nèi)部訂單號(不是交易單號),要求此參數(shù)只能由數(shù)字、大小寫字母_-|*組成,且在同一個商戶號下唯一,詳見「商戶訂單號」,需要和創(chuàng)建訂單的商戶服務(wù)訂單號一致。 示例值:1234323JKHDFE1243252 |
應(yīng)用ID | appid | string[1,32] | 是 | body
微信公眾平臺分配的與傳入的商戶號建立了支付綁定關(guān)系的appid,可在公眾平臺查看綁定關(guān)系。 此參數(shù)需在本系統(tǒng)先進行配置,并與創(chuàng)建訂單時的appid保持一致。 示例值:wxd678efh567hg6787 |
服務(wù)ID | service_id | string[1,32] | 是 | body
該服務(wù)ID有本接口對應(yīng)產(chǎn)品的權(quán)限,需要與創(chuàng)建訂單時保持一致。 示例值:500001 |
場景類型 | type | string[1,32] | 是 | body 場景類型為“Order_Paid”,字符串表示“訂單收款成功” 。 示例值:Order_Paid |
+ 內(nèi)容信息詳情 | detail | ?object | 否 | body 場景類型為Order_Paid時,為必填項。 |
{
"appid": "wxd678efh567hg6787",
"service_id": "500001",
"type": "Order_Paid",
"detail": {
"paid_time": "20091225091210"
}
}
參數(shù)名 | 變量 | 類型[長度限制] | 必填 | 描述 |
---|---|---|---|---|
應(yīng)用ID | appid | string[1,32] | 是 | 調(diào)用接口提交的公眾賬號ID。 示例值:wxd678efh567hg6787 |
商戶號 | mchid | string[1,32] | 是 | 調(diào)用接口提交的商戶號。 示例值:1230000109 |
商戶服務(wù)訂單號 | out_order_no | string[1,32] | 是 | 調(diào)用接口提交的商戶服務(wù)訂單號。 示例值:1234323JKHDFE1243252 |
服務(wù)ID | service_id | string[1,32] | 是 | 調(diào)用該接口提交的服務(wù)ID。 示例值:500001 |
服務(wù)信息 | service_introduction | string[1,20] | 是 | 服務(wù)信息,用于介紹本訂單所提供的服務(wù)。 示例值:某某酒店 |
用戶標識 | openid | string[1,128] | 是 | 微信用戶在商戶對應(yīng)appid下的唯一標識。 示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
服務(wù)訂單狀態(tài) | state | string[1,32] | 是 | 表示當前單據(jù)狀態(tài)。 枚舉值: |
訂單狀態(tài)說明 | state_description | string[1,32] | 否 | 對服務(wù)訂單"進行中"狀態(tài)的附加說明。 枚舉值: |
商戶收款總金額 | total_amount | int64 | 否 | 總金額,大于等于0的數(shù)字,單位為分,只能為整數(shù),詳見支付金額。 此參數(shù)需滿足:總金額=后付費項目金額之和-后付費商戶優(yōu)惠項目金額之和,且小于等于訂單風險金額。取消訂單時,該字段必須為0。 示例值:40000 |
+后付費項目 | post_payments | array | 否 | 后付費項目列表,最多包含100條付費項目。 |
+后付費商戶優(yōu)惠 | post_discounts | array | 否 | 后付費商戶優(yōu)惠,最多包含30條付費項目。 |
+訂單風險金 | risk_fund | object | 否 | 訂單風險金信息 |
+服務(wù)時間段 | time_range | object | 否 | 服務(wù)時間范圍 |
+服務(wù)位置 | location | object | 否 | 服務(wù)使用信息 |
商戶數(shù)據(jù)包 | attach | string[1,256] | 否 | 商戶數(shù)據(jù)包,可存放本訂單所需信息,需要先urlencode后傳入,總長度不大于256字符,超出報錯處理。 示例值:Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald |
商戶回調(diào)地址 | notify_url | string[1,255] | 否 | 商戶接收用戶確認訂單或扣款成功回調(diào)通知的地址。 示例值:https://api.test.com |
微信支付服務(wù)訂單號 | order_id | string[1,64] | 是 | 微信支付服務(wù)訂單號,每個微信支付服務(wù)訂單號與商戶號下對應(yīng)的商戶服務(wù)訂單號一一對應(yīng)。 示例值:15646546545165651651 |
是否需要收款 | need_collection | bool | 否 | true:微信支付分代收款 false:無需微信支付分代收款 示例值:true |
+收款信息 | collection | object | 否 | 收款信息 |
{
"appid": "wxd678efh567hg6787",
"mchid": "1230000109",
"service_id": "500001",
"out_order_no": "1234323JKHDFE1243252",
"service_introduction": "某某酒店",
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
"state": "CREATED",
"state_description": "MCH_COMPLETE",
"total_amount": 3900,
"post_payments": [
{
"name": "就餐費用服務(wù)費",
"amount": 4000,
"description": "就餐人均100元服務(wù)費:100/小時",
"count": 1
}
],
"post_discounts": [
{
"name": "滿20減1元",
"description": "不與其他優(yōu)惠疊加",
"amount": 100
}
],
"risk_fund": {
"name": "ESTIMATE_ORDER_COST",
"amount": 10000,
"description": "就餐的預(yù)估費用"
},
"time_range": {
"start_time": "20091225091010",
"end_time": "20091225121010"
},
"location": {
"start_location": "嗨客時尚主題展餐廳",
"end_location": "嗨客時尚主題展餐廳"
},
"attach": "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald",
"notify_url": "https://api.test.com",
"order_id": "15646546545165651651",
"need_collection": true,
"collection": {
"state": "USER_PAID",
"total_amount": 3900,
"paying_amount": 0,
"paid_amount": 3900,
"details": [
{
"amount": 10000,
"paid_type": "NEWTON",
"paid_time": "20091225091210",
"transaction_id ": "15646546545165651651"
}
]
}
}
狀態(tài)碼 | 錯誤碼 | 描述 | 解決方案 |
---|---|---|---|
500 | SYSTEM_ERROR | 系統(tǒng)錯誤 | 5開頭的狀態(tài)碼都為系統(tǒng)問題,請使用相同參數(shù)稍后重新調(diào)用 |
400 | PARAM_ERROR | 參數(shù)錯誤 | 根據(jù)錯誤提示,傳入正確參數(shù) |
403 | NO_AUTH | 商戶信息不合法 | 登錄商戶平臺核對,傳入正確信息 |
429 | FREQUENCY_LIMITED | 頻率超限 | 請求量不要超過接口調(diào)用頻率限制 |
400 | INVALID_REQUEST | 請求參數(shù)符合參數(shù)格式,但不符合業(yè)務(wù)規(guī)則 | 請確認相同單號是否使用了不同的參數(shù) |
404 | ORDER_NOT_EXIST | 訂單不存在 | 確認入?yún)ⅲ瑐魅胝_單據(jù) |
400 | INVALID_ORDER_STATE | 單據(jù)狀態(tài)錯誤 | 確認操作是否符合流程 |
400 | ORDER_CANCELED | 單據(jù)已取消 | 當前狀態(tài)無需操作 |
400 | ORDER_DONE | 訂單已完成 | 當前狀態(tài)無需操作 |