Ping++ API 采用 REST 風格設計。所有接口請求地址都是可預期的以及面向資源的。使用規范的 HTTP 響應代碼來表示請求結果的正確或錯誤信息。使用 HTTP 內置的特性,如 HTTP Authentication 和 HTTP 請求方法讓接口易于理解。所有的 API 請求都會以規范友好的 JSON 對象格式返回(包括錯誤信息)。
在調用 API 時,必須提供 API Key 作為每個請求的身份驗證。你可以在管理平臺內管理你的 API Key。API Key 是商戶在 Ping++ 系統中的身份標識,請安全存儲,確保其不要被泄露。如需獲取或更新 API Key ,也可以在管理平臺的「企業面板」->「開發參數」內進行 操作 。
Ping++ API 使用 HTTP Basic Auth 進行認證。 將 API Key 作為 basic auth 的用戶名。不需要填寫密碼。
API Key 分為 live 和 test 兩種模式。分別對應真實交易環境和模擬測試交易環境并且可以實時切換。測試模式下的 API Key 會模擬交易等請求,但是不會產生任何真實交易行為和費用,便于調試和接入。 所有的 API 請求必須通過 HTTPS 發送,使用 HTTP 會被 Ping++ 服務器拒絕。
curl https://api.pingxx.com/v1/charges \ -u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
請將示例中的
sk_test_ibbTe5jLGCi5rzfH4OqPW9KC
替換成你自己的 API Key。
Ping++ API 使用 HTTP 狀態碼 (status code) 來表明一個 API 請求的成功或失敗狀態。返回 HTTP 2XX
表明 API 請求成功。返回 HTTP 4XX
表明在請求 API 時提供了錯誤信息,例如參數缺失、參數錯誤、支付渠道錯誤等。返回 HTTP 5XX
表明 API 請求時,Ping++ 服務器發生了錯誤。
狀態碼 描述 200 - OK 一切正常。 400 - Bad Request 一般由缺失參數,參數格式不正確等引起。 401 - Unauthorized 沒有提供正確的 API Key。 402 - Request Failed 參數格式正確但是請求失敗,一般由業務錯誤引起。 403 - Forbidden 調用接口超過 Ping++ 套餐的并發限制,請 升級套餐 或限流。 404 - Not Found 請求的資源不存在。 500, 502, 503, 504 - Server Errors Ping++ 服務器出錯。
返回屬性 | 描述 |
---|---|
type | 錯誤類型,可以是
invalid_request_error
、
api_error
、
channel_error
或
card_error
。 |
message | 返回具體的錯誤描述。 |
code optional | 錯誤碼,由第三方支付渠道返回的錯誤代碼。 |
param optional | 當發生參數錯誤時返回具體的參數名,如 id。 |
錯誤類型 描述 invalid_request_error 請求錯誤,傳入了不正確的地址,參數或值。 api_error Ping++ 服務器出現的異常錯誤。 channel_error 第三方支付渠道出現的錯誤導致請求出現錯誤。通常你需要對這些可能出現的情況進行處理或者聯系我們。
錯誤碼 描述 charge_closed 支付訂單已結束,不能進行后續操作。 charge_unexpected_status 支付返回意外的狀態碼。 refund_wait_operation 退款需要等待用戶進一步操作。 refund_refused 退款失敗,被支付渠道拒絕。 refund_retry 退款失敗,需要重新發起退款。 refund_manual_intervention 退款失敗,需要通過線下或轉賬進行退款。 refund_unexpected_status 退款返回意外的狀態碼。 channel_connection_error 支付渠道通訊異常。 channel_request_error 請求支付渠道接口失敗。 channel_parse_error 支付渠道返回意外的數據格式發生的解析錯誤。 channel_sign_error 支付渠道返回的數據沒有通過簽名驗證。 channel_unexpected_error 支付渠道遇到未知錯誤。 channel_parameter_error 支付渠道參數錯誤。 channel_auth_error 支付渠道參數錯誤 channel_response_code_fail 支付渠道響應碼錯誤。 channel_parameters_consistency_error 支付渠道參數一致性檢測失敗。 channel_not_support_red_envelope 您的微信參數版本不支持發送紅包。請聯系微信升級為新版本。 channel_not_support_transfer 您的微信參數版本不支持發送企業付款。請聯系微信升級為新版本。 channel_request_info 來自渠道的信息 query_right_error 支付渠道查詢權限錯誤,請登錄支付寶在線人工窗口,免費簽約“賬務明細”接口和“交易查詢”接口。 channel_notify_id_error 支付渠道的NOTIFY ID非法或已失效 charge_order_no_used 訂單號已使用。請用新的訂單號發起交易。 transfer_wait_operation 轉賬需要打開地址進行下一步付款操作 refund_refused_msg 退款已被支付渠道拒絕。 refund_pending 退款狀態未明,請稍后查詢。 refund_failed 退款失敗 refund_info_from_channel 來自渠道的退款信息。 refund_not_found 未在渠道查找到相應退款信息。 red_system_busy 支付渠道系統繁忙,請稍后用同一商戶單號再次調用。只會發送一個紅包。 transfer_system_busy 支付渠道系統繁忙,請稍后用同一商戶單號再次調用。只會發送一筆轉賬。
所有的 Ping++ 資源都可以被 list API 方法支持,例如分頁 charges
和 refunds
。這些 list API 方法擁有相同的數據結構。Ping++ 是基于 cursor
的分頁機制,使用參數 starting_after
來決定列表從何處開始,使用參數 ending_before
來決定列表從何處結束。
請求參數 | 描述 |
---|---|
limit optional | 限制每頁可以返回多少對象,限制范圍是從 1~100 項,默認是 10 項。 |
starting_after optional | 在分頁時使用的指針,決定了列表的第一項從何處開始。假設你的一次請求返回列表的最后一項的
id
是
obj_end
,你可以使用
starting_after
=
obj_end
去獲取下一頁。 |
ending_before optional | 在分頁時使用的指針,決定了列表的最末項在何處結束。假設你的一次請求返回列表的第一項的
id
是
obj_start
,你可以使用
ending_before
=
obj_start
去獲取上一頁。 |
created optional | 對象的創建時間,用 Unix 時間戳表示。具體參考下表
created
參數。 |
created 參數 |
描述 |
---|---|
created [ gt ] optional int | 大于
charge
對象的創建時間,用 Unix 時間戳表示。 |
created [ gte ] optional int | 大于或等于
charge
對象的創建時間,用 Unix 時間戳表示。 |
created [ lt ] optional int | 小于
charge
對象的創建時間,用 Unix 時間戳表示。 |
created [ lte ] optional int | 小于或等于
charge
對象的創建時間,用 Unix 時間戳表示。 |
返回
返回參數 | 描述 |
---|---|
object string | 值為 "list" |
url string | 表明獲取該列表所使用的 URL。 |
has_more boolean | 表明獲取列表之后是否還有更多的元素實體。如果值為
false
,表明當前頁是最后一頁。 |
data array | 包含一個由請求參數分頁后的返回元素實體。 |
curl https://api.pingxx.com/v1/charges/?limit=3 \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"object": "list",
"url": "/v1/charges",
"has_more": false,
"data": [
{
"id": "ch_Hm5uTSifDOuTy9iLeLPSurrD",
"object": "charge",
"created": 1410767648,
"livemode": true,
"paid": false,
"refunded": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "upacp",
"order_no": "123456789012",
"client_ip": "127.0.0.1",
"amount": 900,
"amount_settle": 0,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"time_expire": 1410771248,
"time_settle": null,
"transaction_no": null,
"refunds": {
"object": "list",
"url": "/v1/charges/ch_Hm5uTSifDOuTy9iLeLPSurrD/refunds",
"has_more": false,
"data": [ ]
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {},
"description": null
}
]
}
Ping++ 內有很多對象包含了其他對象的 id
,如果這些對象帶有 expandable 展開特性,你可以在請求參數后加入額外的展開參數來展開子對象。例如在創建 charge
對象時,使用 expand[]=app
參數來展開返回 charge
對象內部的 app
對象。
curl https://api.pingxx.com/v1/charges/ch_Hm5uTSifDOuTy9iLeLPSurrD?expand[]=app \ -u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
一些 Ping++ 對象支持加入用戶指定的 metadata
參數。你可以使用鍵值對的形式來構建自己的 metadata
,例如 metadata[color] = red
,你可以在每一個 Charge、Order
等對象中加入訂單的一些詳情,如顏色、型號等屬性,在查詢時獲得更多信息。每一個對象的 metadata
最多可以擁有 10 個鍵值對,數據總長度在 1000 個 Unicode 字符以內。
同時,Ping++ 提供在 Test 模式下 Webhooks 通知異常功能:創建訂單時,通過在 metadata 字段中上傳 pingpp_tc 字段,來模擬 Webhooks 通知延遲以及重發。你需要針對 Webhooks 延遲以及重復發送同一通知的情況進行處理,合理優化服務端接收 Webhooks 異步通知部分的邏輯。
屬性 | 描述 |
---|---|
pingpp_tc optional,string | 測試模式 Webhooks 異常功能觸發值。為 "001" 時,代表模擬支付成功后,同樣的異步通知將重復進行推送;為 "002" 時,代表模擬支付成功后,異步通知將延遲 5 分鐘再進行推送。 注: 此字段僅在 Test 模式下有效,不影響 Live 環境的使用。 |
phone_number optional,string | 手機號(11位)。 |
user_id optional,string | 用戶 ID,商戶 App 內用戶的唯一標識。 |
curl https://api.pingxx.com/v1/charges \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d order_no=123456789 \
-d amount=100 \
-d app[id]=app_1Gqj58ynP0mHeX1q \
-d channel=upacp \
-d currency=cny \
-d client_ip=127.0.0.1 \
-d subject="Your Subject" \
-d body="Your Body" \
-d metadata[color]=red
-d metadata[phone_number]=13918651111
{
"id": "ch_Hm5uTSifDOuTy9iLeLPSurrD",
"object": "charge",
"created": 1410775686,
"livemode": true,
"paid": false,
"refunded": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "upacp",
"order_no": "123456789",
"client_ip": "127.0.0.1",
"amount": 100,
"amount_settle": 0,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"time_expire": 1410779286,
"time_settle": null,
"transaction_no": null,
"refunds": {
"object": "list",
"url": "/v1/charges/ch_Hm5uTSifDOuTy9iLeLPSurrD/refunds",
"has_more": false,
"data": []
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {
"color": "red",
"phone_number": "13918651111"
},
"credential": {
"object": "credential",
"upacp": {
"tn": "201409151808060000000",
"mode": "01"
}
},
"description": null
}
你可以創建一個 charge
對象向用戶收款。charge
是一個支付憑據對象,所有和支付相關的要素信息都存儲在這個對象中,你的服務端可以通過發起支付請求來創建一個新的 charge
對象,也可以隨時查詢一個或者多個 charge
對象的狀態。每個 charge
對象都擁有一個標識 id
,該 id
在 Ping++ 系統內唯一。
屬性 | 描述 |
---|---|
id string | 由 Ping++ 生成的支付對象 ID,
27
位字符串。 |
object string | 值為 "charge"。 |
created timestamp | 支付創建時的 Unix 時間戳。 |
livemode boolean | 是否處于
live
模式。 |
paid boolean | 是否已付款。 |
refunded boolean | 是否存在退款信息,無論退款是否成功。 |
reversed boolean | 訂單是否撤銷。 |
app expandable string | 支付使用的
app
對象的
id
,expandable 可展開,查看
如何獲取App ID
。 |
channel string | 支付使用的第三方支付渠道,詳情參考 支付渠道屬性值 。 |
order_no string | 商戶訂單號,適配每個渠道對此參數的要求,必須在商戶的系統內唯一。(支付寶全渠道: 1-64 位的數字和字母組合;
wx
: 2-32 位;
wx_pub_scan、cb_wx、cb_wx_pub、cb_wx_pub_qr、cb_wx_pub_scan
:1-32 位的數字和字母組合;
bfb
: 1-20 位;
upacp、upacp_b2b
: 8-40 位的數字和字母組合;
yeepay_wap
: 1-50 位;
jdpay_wap
: 1-30 位;
qpay
:1-30 位;
isv_qr、isv_scan、isv_wap
: 8-32 位,不重復,建議時間戳+隨機數(或交易順序號);
paypal
:1-32 位的數字和字母組合;
cmb_wallet
: 6-32 位的數字和字母組合,一天內不能重復,訂單日期+訂單號唯一定位一筆訂單,示例: 20170808test01)。
注:
推薦使用 8-20 位的數字和字母組合,不允許特殊字符。 |
client_ip ip address | 發起支付請求客戶端的 IP 地址,格式為 IPv4 整型,如 127.0.0.1。 |
amount int | 訂單總金額(必須大于 0),單位為對應幣種的最小貨幣單位,人民幣為分。如訂單總金額為 1 元,
amount
為 100,么么貸商戶請查看申請的借貸金額范圍。 |
amount_settle int | 清算金額,單位為對應幣種的最小貨幣單位,人民幣為分。 |
currency string | 3 位 ISO 貨幣代碼,小寫字母,人民幣為
cny
。使用跨境渠道詳見下方的
跨境支付 currency 字段說明
。 |
subject string | 商品標題,該參數最長為 32 個 Unicode 字符。銀聯全渠道限制在 32 個字節;支付寶部分渠道不支持特殊字符。 |
body string | 商品描述信息,該參數最長為 128 個 Unicode 字符。
yeepay_wap
對于該參數長度限制為 100 個 Unicode 字符;支付寶部分渠道不支持特殊字符。 |
extra hash | 特定渠道發起交易時需要的額外參數,以及部分渠道支付成功返回的額外參數,詳細參考 支付渠道 extra 參數說明 。 |
time_paid timestamp | 訂單支付完成時的 Unix 時間戳。(銀聯支付成功時間為接收異步通知的時間) |
time_expire timestamp | 訂單失效時間的 Unix 時間戳。時間范圍在訂單創建后的 1 分鐘到 15 天,默認為 1 天,創建時間以 Ping++ 服務器時間為準。微信對該參數的時間范圍在訂單創建后的 1 分鐘到 7 天,默認為 2 小時;銀聯對該參數的有效值限制為 1 小時內。 |
time_settle timestamp | 訂單清算時間,用 Unix 時間戳表示。(暫不生效) |
transaction_no string | 支付渠道返回的交易流水號。 |
refunds list | 退款詳情列表,詳見 Refunds 退款 。 |
amount_refunded int | 已退款總金額,單位為對應幣種的最小貨幣單位,例如:人民幣為分。 |
failure_code string | 訂單的錯誤碼,詳見 錯誤 中的錯誤碼描述。 |
failure_msg string | 訂單的錯誤消息的描述。 |
metadata hash | 詳見 元數據 。 |
credential object | 支付憑證,用于客戶端發起支付。 |
description string | 訂單附加說明,最多 255 個 Unicode 字符。 |
{
"id": "ch_Hm5uTSifDOuTy9iLeLPSurrD",
"object": "charge",
"created": 1410778843,
"livemode": true,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "upacp",
"order_no": "123456789",
"client_ip": "127.0.0.1",
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra":{},
"time_paid": null,
"time_expire": 1410782443,
"time_settle": null,
"transaction_no": null,
"refunds": {
"object": "list",
"url": "/v1/charges/ch_Hm5uTSifDOuTy9iLeLPSurrD/refunds",
"has_more": false,
"data": []
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"credential": {
"object": "credential",
"upacp": {
"tn": "201409151900430000000",
"mode": "01"
}
},
"description": null
}
發起一次支付請求時需要創建一個新的 charge
對象,獲取一個可用的支付憑據用于客戶端向第三方渠道發起支付請求。如果使用測試模式的 API Key,則不會發生真實交易。當支付成功后,Ping++ 會發送 Webhooks 通知。
請求參數 | 描述 |
---|---|
order_no required string | 商戶訂單號,適配每個渠道對此參數的要求,必須在商戶的系統內唯一。(支付寶全渠道: 1-64 位的數字和字母組合;
wx
: 2-32 位;
wx_pub_scan、cb_wx、cb_wx_pub、cb_wx_pub_qr、cb_wx_pub_scan
:1-32 位的數字和字母組合;
bfb
: 1-20 位;
upacp、upacp_b2b
: 8-40 位的數字和字母組合;
yeepay_wap
: 1-50 位;
jdpay_wap
: 1-30 位;
qpay
:1-30 位;
isv_qr、isv_scan、isv_wap
: 8-32 位,不重復,建議時間戳+隨機數(或交易順序號);
paypal
:1-32 位的數字和字母組合;
cmb_wallet
: 6-32 位的數字和字母組合,一天內不能重復,訂單日期+訂單號唯一定位一筆訂單,示例: 20170808test01)。
注:
推薦使用 8-20 位的數字和字母組合,不允許特殊字符。 |
app [ id ] expandable required string | 支付使用的
app
對象的
id
,
expandable
可展開,查看
如何獲取App ID
。 |
channel required string | 支付使用的第三方支付渠道。參考 支付渠道屬性值 。 |
amount required int | 訂單總金額(必須大于 0),單位為對應幣種的最小貨幣單位,人民幣為分。如訂單總金額為 1 元,
amount
為 100,么么貸商戶請查看申請的借貸金額范圍。 |
client_ip required ip address | 發起支付請求客戶端的 IPv4 地址,如: 127.0.0.1。 |
currency required string | 3 位 ISO 貨幣代碼,小寫字母,人民幣為
cny
。使用跨境渠道詳見下方的
跨境支付 currency 字段說明
。 |
subject required string | 商品標題,該參數最長為 32 個 Unicode 字符。銀聯全渠道限制在 32 個字節;支付寶部分渠道不支持特殊字符。 |
body required string | 商品描述信息,該參數最長為 128 個 Unicode 字符。
yeepay_wap
對于該參數長度限制為 100 個 Unicode 字符;支付寶部分渠道不支持特殊字符。 |
extra optional hash | 特定渠道發起交易時需要的額外參數,以及部分渠道支付成功返回的額外參數,詳細參考 支付渠道 extra 參數說明 。 |
time_expire optional timestamp | 訂單失效時間的 Unix 時間戳。時間范圍在訂單創建后的 1 分鐘到 15 天,默認為 1 天,創建時間以 Ping++ 服務器時間為準。微信對該參數的時間范圍在訂單創建后的 1 分鐘到 7 天,默認為 2 小時;銀聯對該參數的有效值限制為 1 小時內。 |
metadata optional hash | 參考 元數據 。 |
description optional string | 訂單附加說明,最多 255 個 Unicode 字符。 |
跨境支付 currency 字段說明
幣種類型 | 幣種 | 支持渠道 |
---|---|---|
usd | 美元 | 微信/支付寶/PayPal |
eur | 歐元 | 微信/支付寶/PayPal |
cad | 加拿大元 | 微信/支付寶/PayPal |
sgd | 新加坡元 | 微信/支付寶/PayPal |
aud | 澳元 | 微信/支付寶/PayPal |
gbp | 英鎊 | 微信/支付寶/PayPal |
hkd | 港幣 | 微信/支付寶/PayPal |
jpy | 日元 | 微信/支付寶/PayPal |
thb | 泰銖 | 微信/支付寶/PayPal |
nzd | 新西蘭元 | 微信/支付寶/PayPal |
nok | 挪威克朗 | 支付寶/PayPal |
sek | 瑞典克朗 | 支付寶/PayPal |
chf | 瑞士法郎 | 支付寶/PayPal |
dkk | 丹麥克朗 | 支付寶/PayPal |
krw | 韓元 | 微信/支付寶 |
rub | 盧布 | 微信/PayPal |
brl | 巴西雷亞爾 | PayPal |
czk | 捷克克朗 | PayPal |
huf | 匈牙利福林 | PayPal |
inr | 印度盧比 | PayPal |
ils | 以色列新克爾 | PayPal |
myr | 馬來西亞令吉 | PayPal |
mxn | 墨西哥比索 | PayPal |
twd | 新臺幣 | PayPal |
php | 菲律賓比索 | PayPal |
pln | 波蘭茲羅提 | PayPal |
返回
返回一個支付憑據 charge
對象。鑒于支付渠道對 order_no
的合法性要求,為了保證支付請求的正確處理,請務必保證對于同一支付渠道下,不同支付產品間 order_no
的唯一性。例如:已在微信公眾號下使用的 order_no
則無法在微信支付以及微信公眾號掃碼下重復使用,該規則同樣適用于其他同類渠道。如果發生錯誤,則會返回錯誤碼和錯誤詳情,詳見 錯誤。
POST https://api.pingxx.com/v1/charges
curl https://api.pingxx.com/v1/charges \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d order_no=123456789 \
-d amount=100 \
-d app[id]=app_1Gqj58ynP0mHeX1q \
-d channel=upacp \
-d currency=cny \
-d client_ip=127.0.0.1 \
-d subject="Your Subject" \
-d body="Your Body"
{
"id": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"object": "charge",
"created": 1410834527,
"livemode": true,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "upacp",
"order_no": "123456789",
"client_ip": "127.0.0.1",
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra":{},
"time_paid": null,
"time_expire": 1410838127,
"time_settle": null,
"transaction_no": null,
"refunds": {
"object": "list",
"url": "/v1/charges/ch_L8qn10mLmr1GS8e5OODmHaL4/refunds",
"has_more": false,
"data": [ ]
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {
"object": "credential",
"upacp": {
"tn": "201409161028470000000",
"mode": "01"
}
},
"description": null
}
針對已經創建的 Charge,你可以調用撤銷接口進行交易的關閉。此接口僅接受 wx_pub_scan
、cb_wx_pub_scan
、alipay_scan
、isv_scan
、isv_wap
、isv_qr
渠道的訂單調用。接口支持對于未成功付款的訂單進行撤銷,則關閉交易。調用此接口后用戶后期不能支付成功。
注:
1、wx_pub_scan
、cb_wx_pub_scan
渠道可在交易產生 7 天內調用撤銷接口;alipay_scan
渠道可在交易產生 24 小時內調用撤銷接口;isv_scan
、isv_wap
、isv_qr
渠道可在交易產生當天調用撤銷接口;
2、若接入的是中信銀行的線下掃碼,則撤銷接口僅支持isv_scan
;
3、對于成功付款的訂單請使用 退款 接口進行退款處理。只有針對未支付的訂單,我們建議你調用撤銷接口。
請求參數 | 描述 |
---|---|
CHARGE_ID required string | charge 對象 ID,該參數僅需要填寫在請求地址內。 |
返回
返回一個 charge
對象。如果發生錯誤,則會返回錯誤碼和錯誤詳情,詳見 錯誤。
POST /v1/charges/{CHARGE_ID}/reverse
curl https://api.pingxx.com/v1/charges/ch_injTG4KGWPePS88WPGPyfzz5/reverse \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{}'
{
"id": "ch_injTG4KGWPePS88WPGPyfzz5",
"object": "charge",
"created": 1495694197,
"livemode": true,
"paid": true,
"refunded": false,
"reversed": true,
"app": "app_4OOi9SGuD88GGqbL",
"channel": "isv_scan",
"order_no": "149569419725834",
"client_ip": "127.0.0.1",
"amount": 1,
"amount_settle": 1,
"currency": "cny",
"subject": "cm isv_scan",
"body": "cm isv_scan",
"extra": {
"scan_code": "130141564083799183",
"terminal_id": "00000001",
"pay_channel": "wx",
"buyer_account": "omYJss9x8g2TzmrxnUtrOr7qWhwc",
"chcd_discount": "0.00",
"mer_discount": "0.00"
},
"time_paid": 1495694546,
"time_expire": 1495780597,
"time_settle": null,
"transaction_no": "4002362001201705252516756579",
"refunds": {
"object": "list",
"url": "/v1/charges/ch_injTG4KGWPePS88WPGPyfzz5/refunds",
"has_more": false,
"data": []
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {},
"description": null
}
你可以在后臺異步通知之前,通過查詢接口確認支付狀態。通過charge
對象的id
查詢一個已創建的charge
對象。
注:針對「線下掃碼」渠道:1、如果支付結果在 5 秒內未成功,則每隔 5 秒循環調用該查詢接口來判斷實際支付結果。如果用戶主動放棄支付或累計 1 分鐘內用戶都未支付,則退出查詢流程后繼續調用 撤銷 Charge 關閉支付交易,該筆訂單按失敗處理;2、isv_scan
場景:當用戶因為免密次數限制或者其他特殊原因,導致同步返回的 Charge 未支付時,需要 5 秒間隔調用 Charge 查詢接口更新訂單狀態。
請求參數 | 描述 |
---|---|
CHARGE_ID required string | 查詢的
charge
對象
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個已存在的 charge
對象或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/charges/{CHARGE_ID}
curl https://api.pingxx.com/v1/charges/ch_L8qn10mLmr1GS8e5OODmHaL4 \ -u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"object": "charge",
"created": 1410834527,
"livemode": true,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "upacp",
"order_no": "123456789",
"client_ip": "127.0.0.1",
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra":{},
"time_paid": null,
"time_expire": 1410838127,
"time_settle": null,
"transaction_no": null,
"refunds": {
"object": "list",
"url": "/v1/charges/ch_L8qn10mLmr1GS8e5OODmHaL4/refunds",
"has_more": false,
"data": [ ]
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {
"object": "credential",
"upacp": {
"tn": "201409161028470000000",
"mode": "01"
}
},
"description": null
}
返回之前創建過 charge
對象的一個列表。列表是按創建時間進行排序,總是將最新的 charge
對象顯示在最前。
請求參數 | 描述 |
---|---|
limit optional,int | 限制有多少對象可以被返回,限制范圍是從 1~100 項,默認是 10 項。 |
starting_after optional,string | 在分頁時使用的指針,決定了列表的第一項從何處開始。假設你的一次請求返回列表的最后一項的
id
是
obj_end
,你可以使用
starting_after
=
obj_end
去獲取下一頁。 |
ending_before optional,string | 在分頁時使用的指針,決定了列表的最末項在何處結束。假設你的一次請求返回列表的第一項的
id
是
obj_start
,你可以使用
ending_before
=
obj_start
去獲取上一頁。 |
created optional,timestamp | 對象的創建時間,用 Unix 時間戳表示。具體參考下表
created
參數。 |
app [ id ] expandable required string | 支付使用的
app
對象的
id
,expandable 可展開,查看
如何獲取App ID
。 |
channel optional,string | 支付使用的支付渠道。參考 支付渠道屬性值 。 |
paid optional,boolean | 是否已付款。 |
refunded optional,boolean | 是否存在退款信息,無論退款是否成功。 |
reversed optional,boolean | 是否已撤銷。 |
created 參數 | 描述 |
---|---|
created [ gt ] optional int | 大于
charge
對象的創建時間,用 Unix 時間戳表示。 |
created [ gte ] optional int | 大于或等于
charge
對象的創建時間,用 Unix 時間戳表示。 |
created [ lt ] optional int | 小于
charge
對象的創建時間,用 Unix 時間戳表示。 |
created [ lte ] optional int | 小于或等于
charge
對象的創建時間,用 Unix 時間戳表示。 |
返回
返回一個已存在的 charge 對象列表或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/charges?expand[]=app
curl https://api.pingxx.com/v1/charges/?limit=3&expand[]=app \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"object": "list",
"url": "/v1/charges",
"has_more": false,
"data": [
{
"id": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"object": "charge",
"created": 1410834527,
"livemode": true,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "upacp",
"order_no": "123456789",
"client_ip": "127.0.0.1",
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra":{},
"time_paid": null,
"time_expire": 1410838127,
"time_settle": null,
"transaction_no": null,
"refunds": {
"object": "list",
"url": "/v1/charges/ch_L8qn10mLmr1GS8e5OODmHaL4/refunds",
"has_more": false,
"data": [ ]
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {
"object": "credential",
"upacp": {
"tn": "201409161028470000000",
"mode": "01"
}
},
"description": null
}
]
}
該類型的 Event 對象會在 charge
對象支付成功后觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
charge.succeeded | 支付對象,支付成功時觸發。 |
{
"id": "evt_ugB6x3K43D16wXCcqbplWAJo",
"created": 1427555101,
"livemode": true,
"type": "charge.succeeded",
"data": {
"object": {
"id": "ch_Xsr7u35O3m1Gw4ed2ODmi4Lw",
"object": "charge",
"created": 1427555076,
"livemode": true,
"paid": true,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "upacp",
"order_no": "123456789",
"client_ip": "127.0.0.1",
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra": {},
"time_paid": 1427555101,
"time_expire": 1427641476,
"time_settle": null,
"transaction_no": "1224524301201505066067849274",
"refunds": {
"object": "list",
"url": "/v1/charges/ch_L8qn10mLmr1GS8e5OODmHaL4/refunds",
"has_more": false,
"data": []
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {},
"description": null
}
},
"object": "event",
"pending_webhooks": 0,
"request": "iar_qH4y1KbTy5eLGm1uHSTS00s"
}
refund
對象允許你可以對已經支付的 charge
對象發起退款請求。
屬性 | 描述 |
---|---|
id string | 退款對象
id
,由 Ping++ 生成,27 位長度字符串。 |
object string | 值為 "refund"。 |
order_no string | 退款的訂單號,由 Ping++ 生成。 |
amount int | 退款金額大于 0,單位為對應幣種的最小貨幣單位,例如:人民幣為分(如退款金額為 1 元,此處請填 100)。 |
created timestamp | 退款創建的時間,用 Unix 時間戳表示。 |
succeed boolean | 退款是否成功。 |
status string | 退款狀態(目前支持三種狀態: pending: 處理中; succeeded: 成功; failed: 失敗)。 |
time_succeed timestamp | 退款成功的時間,用 Unix 時間戳表示。 |
description string | 退款詳情,最多 255 個 Unicode 字符。針對
cmb_wallet
&
cmb_pc_qr
渠道最多支持 99 字節;針對
jdpay_wap
渠道最多支持 128 字節。 |
failure_code string | 退款的錯誤碼,詳見 錯誤 中的錯誤碼。 |
failure_msg string | 退款消息的描述。 |
metadata hash | 參考 元數據 。 |
charge string | refund 對象的所在
charge
對象的
id
。 |
charge_order_no string | 商戶訂單號,這邊返回的是
charge
對象中的
order_no
參數。 |
transaction_no string | 支付渠道返回的交易流水號,部分渠道返回該字段為空。 |
funding_source string | 微信及 QQ 類退款資金來源。取值范圍:
unsettled_funds
:使用未結算資金退款;
recharge_funds
:微信-使用可用余額退款,QQ-使用可用現金賬戶資金退款。注:默認值
unsettled_funds
,該參數對于微信渠道的退款來說僅適用于微信老資金流商戶使用,包括
wx
、
wx_pub
、
wx_pub_qr
、
wx_lite
、
wx_wap
、
wx_pub_scan
六個渠道;新資金流退款資金默認從基本賬戶中扣除。該參數僅在請求退款,傳入該字段時返回。 |
extra hash | 退款成功時額外返回的渠道信息。目前支持顯示
wx、wx_pub、wx_pub_qr、wx_lite、wx_wap、wx_pub_scan、cb_alipay、cb_alipay_wap、cb_alipay_pc_direct
渠道以及自定義渠道
custom
的返回信息。詳情見下方 extra 參數說明。 |
extra 參數說明 | 描述 |
---|---|
device_info string | 設備號:微信支付分配的終端設備號 |
refund_count int | 退款筆數:退款記錄數 |
cash_fee int | 現金支付金額,單位為分,只能為整數 |
cash _ refund_fee int | 現金退款金額,單位為分,只能為整數 |
coupon _ refund_fee int | 代金券或立減優惠退款金額:代金券或立減優惠退款金額 = 訂單金額 - 現金退款金額。注意:立減優惠金額不會退回 |
coupon _ refund_count int | 代金券或立減優惠使用數量 |
coupon _ refund_id string | 代金券或立減優惠 ID |
refund_channel_$n
string |
退款渠道。
ORIGINAL
:原路退款;
BALANCE
:退回到余額;
OTHER_BALANCE
:原賬戶異常退到其他余額賬戶;
OTHER_BANKCARD
:原銀行卡異常退到其他銀行卡 |
refund_fee_$n
int |
申請退款金額:退款總金額,單位為分,可以做部分退款 |
settlement_refund_fee_$n
int |
退款金額:退款金額=申請退款金額-非充值代金券退款金額。退款金額<=申請退款金額 |
coupon_type_$n
string |
代金券類型。
CASH
:充值代金券;
NO_CASH
:非充值代金券。訂單使用代金券時有返回(取值:
CASH
、
NO_CASH
)。
$n
為下標,從0開始編號,舉例:
coupon_type_$0 |
coupon_refund_fee_$n
int |
總代金券退款金額:代金券退款金額 <= 退款金額,退款金額 - 代金券或立減優惠退款金額為現金,說明詳見 代金券或立減優惠 |
coupon_refund_count_$n
int |
退款代金券使用數量:退款代金券使用數量,
$n
為下標,從0開始編號 |
coupon_refund_id_$n_$m
string |
退款代金券ID:退款代金券ID,
$n
、
$m
為下標,從0開始編號 |
coupon_refund_fee_$n_$m
int |
單個退款代金券支付金額,
$n
、
$m
為下標,從0開始編號 |
user string | 用戶 ID,僅在渠道為 custom 時返回 |
split _ fund_info array | 退分賬列表,上送格式為:
[{"account": "2088866088886666","amount": 1,"desc": "split_desc desc"}]
,詳情參考下方
split
_
fund
_
info參數說明
|
split_fund_info 參數說明
參數 | 說明 |
---|---|
account required, string | 接受退分賬資金的支付寶賬戶ID |
amount required, string | 退分賬的金額 |
desc optional, string | 退分賬描述信息 |
{
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 1,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Refund Description",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425284",
"funding_source": null,
"extra": {}
}
通過發起一次退款請求創建一個新的 refund
對象,只能對已經發生交易并且沒有全額退款的 charge
對象發起退款。當進行全額退款之前,可以進行多次退款,直至全額退款。當一次退款成功后,會發送 Webhooks 通知。
請求參數 | 描述 |
---|---|
CHARGE_ID required string | 支付
charge
對象的
id
,該參數僅需要填寫在請求地址內。 |
amount optional,int | 退款金額大于 0, 單位為對應幣種的最小貨幣單位,例如:人民幣為分(如退款金額為 1 元,此處請填 100)。必須小于等于可退款金額,默認為全額退款。 |
metadata optional,hash | 參考 元數據 。 |
description required string | 退款詳情,最多 255 個 Unicode 字符。針對
cmb_wallet
&
cmb_pc_qr
渠道最多支持 99 字節;針對
jdpay_wap
渠道最多支持 128 字節。 |
funding_source optional string | 微信及 QQ 類退款資金來源。取值范圍:
unsettled_funds
:使用未結算資金退款;
recharge_funds
:微信-使用可用余額退款,QQ-使用可用現金賬戶資金退款。注:默認值
unsettled_funds
,該參數對于微信渠道的退款來說僅適用于微信老資金流商戶使用,包括
wx
、
wx_pub
、
wx_pub_qr
、
wx_lite
、
wx_wap
、
wx_pub_scan
六個渠道;新資金流退款資金默認從基本賬戶中扣除。該參數僅在請求退款,傳入該字段時返回。 |
extra optional | 退款 extra 參數,僅在渠道
cb_alipay、cb_alipay_wap、cb_alipay_pc_direct
需要按分賬列表進行退款時傳入,詳見下方 extra 參數說明。 |
extra 參數 | 描述 |
---|---|
split_fund_info optional, array | 分賬列表,上送格式為:
[{"account": "2088866088886666","amount": 1,"desc": "split_desc desc"}]
,詳情參考下方 split_fund_info參數說明 |
split_fund_info 參數說明
參數 | 說明 |
---|---|
account required string | 接受分賬資金的支付寶賬戶ID |
amount required string | 分賬的金額 |
desc optional, string | 分賬描述信息 |
返回
如果發起退款成功,返回一個退款 refund
對象。如果發生錯誤,則會返回錯誤碼和錯誤詳情,詳見 錯誤。
POST https://api.pingxx.com/v1/charges/{CHARGE_ID}/refunds
curl https://api.pingxx.com/v1/charges/ch_L8qn10mLmr1GS8e5OODmHaL4/refunds \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d description="Refund Description" \
-X POST
{
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 1,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Refund Description",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425284",
"funding_source": null,
"extra": {}
}
可以通過 charge
對象的查詢接口查詢某一個 charge
對象的退款列表,也可以通過 refund
對象的 id 查詢一個已創建的 refund
對象。可以在 Webhooks 通知之前,通過查詢接口確認退款狀態。
請求參數 | 描述 |
---|---|
CHARGE_ID required string | 退款的
charge
對象
id
,該參數僅需要填寫在請求地址內。 |
REFUND_ID required string | 查詢的
refund
對象
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個已存在的 refund
對象或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/charges/{CHARGE_ID}/refunds/{REFUND_ID}
curl https://api.pingxx.com/v1/charges/ch_L8qn10mLmr1GS8e5OODmHaL4/refunds/re_TmbvDKHiXLCSG0mnj9jnDyjA \ -u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 1,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Refund Description",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425284",
"funding_source": null,
"extra": {}
}
返回之前創建 charge
對象的一個 refund
對象列表。列表是按創建時間進行排序,總是將最新的 refund
對象顯示在最前。
請求參數 | 描述 |
---|---|
CHARGE_ID required string | 指定退款所在
charge
對象的
id
,該參數僅需要填寫在請求地址內。 |
limit optional int | 限制每頁可以返回多少對象,范圍為 1~100 項,默認是 10 項。 |
starting_after optional string | 在分頁時使用的指針,決定了列表的第一項從何處開始。假設你的一次請求返回列表的最后一項的
id
是
obj_end
,你可以使用
starting_after
=
obj_end
去獲取下一頁。 |
ending_before optional string | 在分頁時使用的指針,決定了列表的最末項在何處結束。假設你的一次請求返回列表的第一項的
id
是
obj_start
,你可以使用
ending_before
=
obj_start
去獲取上一頁。 |
返回
根據請求參數返回一個 refund
對象列表,如果列表為空,則返回的 data
為空數組。遇到錯誤時返回相應錯誤信息,詳見 錯誤。
GET https://api.pingxx.com/v1/charges/{CHARGE_ID}/refunds
curl https://api.pingxx.com/v1/charges/ch_L8qn10mLmr1GS8e5OODmHaL4/refunds?limit=3 \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"object": "list",
"url": "/v1/charges/ch_L8qn10mLmr1GS8e5OODmHaL4/refunds",
"has_more": false,
"data": [
{
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 1,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Refund Description",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425284",
"funding_source": null,
"extra": {}
}
}
]
}
該類型的 Event 對象會在 refund
對象退款成功后觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
refund.succeeded | 退款對象,退款成功時觸發。 |
{
"id": "evt_gJKelawq06CiPojS5gt3noQA",
"created": 1427555348,
"livemode": true,
"type": "refund.succeeded",
"data": {
"object": {
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 1,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Refund Description",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425284",
"funding_source": null,
"extra": {}
}
},
"object": "event",
"pending_webhooks": 0,
"request": "iar_Ca1Oe10OqTSOPOmzX9Hi1a5"
}
batch_refund
對象允許你對已經支付的多個 charge 對象發起批量退款請求。
以下是該接口的注意事項:
charge
列表,不可以有重復的 charge id
,必須全部是已支付并且未全額退款的狀態;refund_url
字段為空;屬性 | 描述 |
---|---|
id string | 批量退款對象
id
,由 Ping++ 生成。 |
app string | 批量退款對應的 app 對象 ID,查看 如何獲取App ID 。 |
object string | 值為 "batch_refund"。 |
batch_no string | 批量退款批次號,3-24位,允許字母和英文。 |
created timestamp | 批量退款創建時間,用 Unix 時間戳表示。 |
description string | 批量退款詳情,最多 255 個 Unicode 字符。針對
cmb_wallet
&
cmb_pc_qr
渠道最多支持 99 字節;針對
jdpay_wap
渠道最多支持 128 字節。 |
metadata hash | 參考 元數據 。 |
charges array | 需要退款的
charge
對象數組。 |
refunds list | 退款詳情列表,詳見 refund 退款 。 |
refund_url string | 退款 URL,僅在渠道為支付寶時有值,你需要獲取該地址,在瀏覽器中打開并且輸入支付寶支付密碼才能完成退款。 |
status string | 批量退款狀態,目前支持 5 種狀態。
created
:退款對象已創建,所有訂單在隊列待處理;
pending
: 處理中;
succeeded
: 成功;
failed
: 失敗;
partially_succeeded
: 部分成功。 |
time_succeeded integer | 退款成功的 Unix 時間戳。 |
livemode boolean | 是否是生產模式。 |
退款狀態 status
說明
{
"id": "1511801051441290118",
"app": "app_r1uDe9rDashboard",
"object": "batch_refund",
"batch_no": "Br20180100944122120465",
"created": 1515134483,
"description": "Testing for batch refund",
"charges": [{
"charge": "ch_fHyjLKaj5OSOKCSWj01unzzL",
"refund": "re_qXPmnTD4ezHSWjLyfP5KWorT",
"status": "succeeded",
"failure_msg": null,
"amount": 1,
"description": "Description ch_fHyjLKaj5OSOKCSWj01unzzL"
}, {
"charge": "ch_HmnDKKDmrb185mbjDOCqbjct",
"refund": "re_DGm9S4jPWHKGTyzTaHPCG090",
"status": "failed",
"failure_msg": null,
"amount": 10,
"description": "Description ch_HmnDKKDmrb185mbjDOCqbjct"
}],
"refunds": {
"object": "list",
"url": null,
"has_more": false,
"data": [{
"id": "re_qXPmnTD4ezHSWjLyfP5KWorT",
"object": "refund",
"order_no": "qXPmnTD4ezHSWjLyfP5KWHuT",
"amount": 1,
"created": 1515134486,
"succeed": true,
"status": "succeeded",
"time_succeed": 1515134486,
"description": "Description ch_fHyjLKaj5OSOKCSWj01unzzL",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_fHyjLKaj5OSOKCSWj01unzzL",
"charge_order_no": "46093aa0c1d5f2fe",
"transaction_no": "2018010421001004920246701437",
"extra": {}
}, {
"id": "re_DGm9S4jPWHKGTyzTaHPCG090",
"object": "refund",
"order_no": "DGm9S4jPWHKGTyzTaHPCG090",
"amount": 10,
"created": 1515134489,
"succeed": false,
"status": "failed",
"time_succeed": null,
"description": "Description ch_HmnDKKDmrb185mbjDOCqbjct",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_HmnDKKDmrb185mbjDOCqbjct",
"charge_order_no": "T160824050908ag",
"transaction_no": null,
"extra": {}
}]
},
"refund_url": null,
"status": "partially_succeeded",
"time_succeeded": 1515134513,
"livemode": true,
"metadata": {
"userStr": "KTs/YDg3ZFUFONZUC10SuA=="
}
}
創建一個 batch refund
對象來發起批量退款。
請求參數 | 描述 |
---|---|
app required string | 批量退款對應的 app 對象 ID,查看 如何獲取App ID 。 |
batch_no required string | 批量退款批次號,3-24位,允許字母和英文。 |
charges required array | 需要退款的 Charge 列表,一次最多 100 個,詳見 批量退款 charges 參數說明 。 |
description required string | 批量退款詳情,最多 255 個 Unicode 字符。針對
cmb_wallet
&
cmb_pc_qr
渠道最多支持 99 字節;針對
jdpay_wap
渠道最多支持 128 字節。 |
metadata optional hash | 參考 元數據 。 |
批量退款 charges 參數說明
參數 | 說明 |
---|---|
charge required string | Charge 對象 ID。 |
amount optional,int | 退款金額。大于 0, 單位為對應幣種的最小貨幣單位,例如:人民幣為分(如退款金額為 1 元,此處請填 100)。必須小于等于可退款金額,不填默認為全額退款。 |
description optionan,string | 批量退款詳情,最多 255 個 Unicode 字符。 |
funding_source optional,string | 微信及 QQ 類退款資金來源。取值范圍:
unsettled_funds
:使用未結算資金退款;
recharge_funds
:微信-使用可用余額退款,QQ-使用可用現金賬戶資金退款。注:默認值
unsettled_funds
,該參數對于微信渠道的退款來說僅適用于微信老資金流商戶使用,包括
wx
、
wx_pub
、
wx_pub_qr
、
wx_lite
、
wx_wap
、
wx_pub_scan
六個渠道;新資金流退款資金默認從基本賬戶中扣除。該參數僅在請求退款,傳入該字段時返回。 |
返回
返回一個 batch refund
對象或者一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/batch_refunds
curl https://api.pingxx.com/v1/batch_refunds \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"app": "app_abcdefghweqzadfs",
"batch_no": "batchrefund20160801001",
"description": "Batch refund description.",
"charges": [
{
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"amount": 10,
"description": "Batch refund description."
},
{
"charge": "ch_fdOmHaLmLmr1GOD4qn1dS8e5",
"amount": 10,
"description": "Batch refund description."
}
]
}'
{
"id": "151608161453545122",
"app": "app_abcdefghweqzadfs",
"object": "batch_refund",
"batch_no": "batchrefund20160801001",
"created": 1409634192,
"description": "Batch refund description.",
"charges": [
{
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"refund": null,
"status": "created",
"failure_msg": null,
"amount": 10,
"description": "Batch refund description."
},
{
"charge": "ch_fdOmHaLmLmr1GOD4qn1dS8e5",
"refund": null,
"status": "created",
"failure_msg": null,
"amount": 10,
"description": "Batch refund description."
}
],
"refunds": {
"object": "list",
"url":null,
"has_more": false,
"data": [
{
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 10,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Batch refund description.",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425284"
,
"funding_source": null,
"extra": {}
},
{
"id": "re_nL0nD0iDPmfy1u944HyvnrT1",
"object": "refund",
"order_no": "nL0nD0iDPmfy1u944HyvnrT1",
"amount": 10,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Batch refund description.",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_fdOmHaLmLmr1GOD4qn1dS8e5",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425285",
"funding_source": null,
"extra": {}
}
]
},
"refund_url": "https://mapi.alipay.com/gateway.do?..."
}
你可以使用 batch_refund_id
來查詢對應的 batch refund
對象信息。
請求參數 | 描述 |
---|---|
BATCH_REFUND_ID required string | 批量退款對象
id
,由 Ping++ 生成,該參數僅需要填寫在請求地址內。 |
返回
返回一個 batch refund
對象或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/batch_refunds/{BATCH_REFUND_ID}
curl https://api.pingxx.com/v1/batch_refunds/151608161453545122 \ -u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "151608161453545102",
"app": "app_abcdefghweqzadfs",
"object": "batch_refund",
"batch_no": "batchrefund20160801001",
"created": 1409634192,
"description": "Batch refund description.",
"charges": [
{
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"refund": null,
"status": "created",
"failure_msg": null,
"amount": 10,
"description": "Batch refund description."
},
{
"charge": "ch_fdOmHaLmLmr1GOD4qn1dS8e5",
"refund": null,
"status": "created",
"failure_msg": null,
"amount": 10,
"description": "Batch refund description."
}
],
"refunds": {
"object": "list",
"url": null,
"has_more": false,
"data": [
{
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 10,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Batch refund description.",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425280",
"funding_source": null,
"extra": {}
},
{
"id": "re_nL0nD0iDPmfy1u944HyvnrT1",
"object": "refund",
"order_no": "nL0nD0iDPmfy1u944HyvnrT1",
"amount": 10,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Batch refund description.",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_fdOmHaLmLmr1GOD4qn1dS8e5",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425281",
"funding_source": null,
"extra": {}
}
]
},
"refund_url": null
}
你可以使用調用該接口來查詢對應的 batch refund
對象列表信息。
請求參數 | 描述 |
---|---|
page optional int | 頁碼,取值范圍:1~1000000000;默認值為"1"。 |
per_page optional int | 每頁數量,取值范圍:1~100;默認值為"10"。 |
created [ gt ] optional int | 創建時間大于該值。 |
created [ gte ] optional int | 創建時間大于或等于該值。 |
created [ lt ] optional int | 創建時間小于該值。 |
created [ lte ] optional int | 創建時間小于或等于該值。 |
app optional string | 批量退款對應的 app 對象 ID,查看 如何獲取App ID 。 |
返回
返回一個 batch refund
對象列表或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/batch_refunds?app={app_id}
curl https://api.pingxx.com/v1/batch_refunds?app={app_id} \
-H "Content-Type: application/json; charset=utf-8" \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1476067085" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/batch_refunds", "has_more": true, "data": [ { "id": "1501612191333090605", "app": "app_LibTW1n1SOq9Pin1", "object": "batch_refund", "batch_no": "Br20161219133308975749", "created": 1482125589, "description": "for batch refund", "charges": [ { "charge": "ch_5eLqPSWHefbLPOirrLrfXzT8", "refund": re_nL0nD0iDPmfy1u944HyvnrT1", "status": "succeeded", "failure_msg": null, "amount": 1, "description": "Description of batch refund for ch_5eLqPSWHefbLPOirrLrfXzT8 channel is alipay_pc_direct" } ], "refunds": { "object": "list", "url": null, "has_more": false, "data": [ { "id": "re_9mDWDOi9CeXT5Wf1ePybH8SO", "object": "refund", "order_no": "9mDWDOi9CeXT5Wf1ePybH8SO", "amount": 1, "created": 1482125589, "succeed": true, "status": "succeeded", "time_succeed": 1482125591, "description": "Description of batch refund for ch_5eLqPSWHefbLPOirrLrfXzT8 channel is alipay_pc_direct", "failure_code": null, "failure_msg": null, "metadata": {}, "charge": "ch_5eLqPSWHefbLPOirrLrfXzT8", "charge_order_no": "sKXY8NMQiPElBPCtKwl", "transaction_no": "2016121232962609" } ] }, "refund_url": null, "status": "succeeded", "time_succeeded": 1482125591, "livemode": false, "metadata": { "userStr": "KTs/YDg3ZFUFONZUC10SuA==" } }, { "id": "1501612121108270241", "app": "app_LibTW1n1SOq9Pin1", "object": "batch_refund", "batch_no": "Br20161212110832753837", "created": 1481512107, "description": "for batch refund", "charges": [ { "charge": "ch_zHGezDPeTm5054azPS4K4e94", "refund": re_nL0nD0iDPmfy1u944HyvnrT1", "status": "succeeded", "failure_msg": null, "amount": 1, "description": "Description of batch refund for ch_zHGezDPeTm5054azPS4K4e94" }, { "charge": "ch_HmXj9KmTaP0S0yjLi1HCKCGS", "refund": re_nL0nD0iDPmfy1u944HyvnrT1", "status": "succeeded", "failure_msg": null, "amount": 1, "description": "Description of batch refund for ch_HmXj9KmTaP0S0yjLi1HCKCGS" }, { "charge": "ch_LOmfTSSWjLSSHyjn58Wjn5CK", "refund": re_nL0nD0iDPmfy1u944HyvnrT1", "status": "succeeded", "failure_msg": null, "amount": 1, "description": "Description of batch refund for ch_LOmfTSSWjLSSHyjn58Wjn5CK" }, { "charge": "ch_m90CKGuf54KGiXrzvP94eTqT", "refund": re_nL0nD0iDPmfy1u944HyvnrT1", "status": "succeeded", "failure_msg": null, "amount": 1, "description": "Description of batch refund for ch_m90CKGuf54KGiXrzvP94eTqT" } ], "refunds": { "object": "list", "url": null, "has_more": false, "data": [ { "id": "re_n9qLaLibLaXDrHWPS8u1efv9", "object": "refund", "order_no": "n9qLaLibLaXDrHWPS8u1efv9", "amount": 1, "created": 1481512107, "succeed": true, "status": "succeeded", "time_succeed": 1481512110, "description": "Description of batch refund for ch_HmXj9KmTaP0S0yjLi1HCKCGS", "failure_code": null, "failure_msg": null, "metadata": {}, "charge": "ch_HmXj9KmTaP0S0yjLi1HCKCGS", "charge_order_no": "p4D9bD2fWloQAJF0xeW", "transaction_no": "2016121266712557" }, { "id": "re_zrrf10m5OeP8WnDazDWjr9u1", "object": "refund", "order_no": "zrrf10m5OeP8WnDazDWjr9u1", "amount": 1, "created": 1481512384, "succeed": true, "status": "succeeded", "time_succeed": 1481512384, "description": "Description of batch refund for ch_zHGezDPeTm5054azPS4K4e94", "failure_code": null, "failure_msg": null, "metadata": {}, "charge": "ch_zHGezDPeTm5054azPS4K4e94", "charge_order_no": "nr3nzd0LKUZPGffdnWk", "transaction_no": "20161212762249932756398526" }, { "id": "re_8ibfP4iHqvX1vPm5yL1unj10", "object": "refund", "order_no": "8ibfP4iHqvX1vPm5yL1unj10", "amount": 1, "created": 1481512395, "succeed": true, "status": "succeeded", "time_succeed": 1481512395, "description": "Description of batch refund for ch_m90CKGuf54KGiXrzvP94eTqT", "failure_code": null, "failure_msg": null, "metadata": {}, "charge": "ch_m90CKGuf54KGiXrzvP94eTqT", "charge_order_no": "74WcRECvtRK3358OxSE", "transaction_no": "201612121113158363064" }, { "id": "re_fPO48GH8ynfD1WrrTCrTiXHG", "object": "refund", "order_no": "fPO48GH8ynfD1WrrTCrTiXHG", "amount": 1, "created": 1481512414, "succeed": true, "status": "succeeded", "time_succeed": 1481512414, "description": "Description of batch refund for ch_LOmfTSSWjLSSHyjn58Wjn5CK", "failure_code": null, "failure_msg": null, "metadata": {}, "charge": "ch_LOmfTSSWjLSSHyjn58Wjn5CK", "charge_order_no": "W3ryYhJ759OiqoIqrWL", "transaction_no": "201612121113343118084" } ] }, "refund_url": null, "status": "succeeded", "time_succeeded": 1481514395, "livemode": false, "metadata": { "userStr": "KTs/YDg3ZFUFONZUC10SuA==" } }, { "id": "1501612121057324115", "app": "app_LibTW1n1SOq9Pin1", "object": "batch_refund", "batch_no": "Br20161212105736913001", "created": 1481511452, "description": "for batch refund", "charges": [ { "charge": "ch_DmrrLS4mXLW5rTmv98eTO8CC", "amount": 1, "description": "Description of batch refund for ch_DmrrLS4mXLW5rTmv98eTO8CC", "status": "pending" } ], "refunds": { "object": "list", "url": null, "has_more": false, "data": [ { "id": "re_SSyHyTLmDif5rL08eL9S0KaL", "object": "refund", "order_no": "SSyHyTLmDif5rL08eL9S0KaL", "amount": 1, "created": 1481511452, "succeed": false, "status": "pending", "time_succeed": null, "description": "Description of batch refund for ch_DmrrLS4mXLW5rTmv98eTO8CC", "failure_code": null, "failure_msg": null, "metadata": {}, "charge": "ch_DmrrLS4mXLW5rTmv98eTO8CC", "charge_order_no": "WTcuLygwsBoXzyxbTzo", "transaction_no": "2016121292506338" } ] }, "refund_url": "https://mapi.alipay.com/gateway.do?_input_charset=utf-8&batch_no=2016121233903404362155702070&batch_num=1&detail_data=2016121296863396%5E1%5Edesc¬ify_url=https%3A%2F%2Fapi.pingpluspl.us%2Fnotify%2Fcharges%2F561787072392318340672504%2Frefunds%2F495666061961734591287292&partner=2008435904851794&refund_date=2016-12-12%2010%3A57%3A32&seller_user_id=2008435904851794&service=refund_fastpay_by_platform_pwd&sign=YnpEcTUwR3VIQ3FQQzBXMVNDSEt1YlhQ&sign_type=RSA", "status": "pending", "time_succeeded": null, "livemode": false, "metadata": { "userStr": "KTs/YDg3ZFUFONZUC10SuA==" } } ] }
該類型的 Event 對象會在 batch_refund
對象批量退款成功后觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
batch_refund.succeeded | 批量退款對象,批量退款成功時觸發。 |
{
"id": "evt_401180105144153102210801",
"created": 1515134513,
"livemode": true,
"type": "batch_refund.succeeded",
"data": {
"object": {
"id": "1511801051441290118",
"app": "app_r1uDe9rDashboard",
"object": "batch_refund",
"batch_no": "Br20180100944122120465",
"created": 1515134483,
"description": "Testing for batch refund",
"charges": [
{
"charge": "ch_fHyjLKaj5OSOKCSWj01unzzL",
"refund": "re_qXPmnTD4ezHSWjLyfP5KWorT",
"status": "succeeded",
"failure_msg": null,
"amount": 1,
"description": "Description ch_fHyjLKaj5OSOKCSWj01unzzL"
},
{
"charge": "ch_HmnDKKDmrb185mbjDOCqbjct",
"refund": "re_DGm9S4jPWHKGTyzTaHPCG090",
"status": "failed",
"failure_msg": null,
"amount": 10,
"description": "Description ch_HmnDKKDmrb185mbjDOCqbjct"
}
],
"refunds": {
"object": "list",
"url": null,
"has_more": false,
"data": [
{
"id": "re_qXPmnTD4ezHSWjLyfP5KWorT",
"object": "refund",
"order_no": "qXPmnTD4ezHSWjLyfP5KWHuT",
"amount": 1,
"created": 1515134486,
"succeed": true,
"status": "succeeded",
"time_succeed": 1515134486,
"description": "Description ch_fHyjLKaj5OSOKCSWj01unzzL",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_fHyjLKaj5OSOKCSWj01unzzL",
"charge_order_no": "46093aa0c1d5f2fe",
"transaction_no": "2018010421001004920246701437",
"extra": {}
},
{
"id": "re_DGm9S4jPWHKGTyzTaHPCG090",
"object": "refund",
"order_no": "DGm9S4jPWHKGTyzTaHPCG090",
"amount": 10,
"created": 1515134489,
"succeed": false,
"status": "failed",
"time_succeed": null,
"description": "Description ch_HmnDKKDmrb185mbjDOCqbjct",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_HmnDKKDmrb185mbjDOCqbjct",
"charge_order_no": "T160824050908ag",
"transaction_no": null,
"extra": {}
}
]
},
"refund_url": null,
"status": "partially_succeeded",
"time_succeeded": 1515134513,
"livemode": true,
"metadata": {
"userStr": "KTs/YDg3ZFUFONZUC10SuA=="
}
}
},
"object": "event",
"request": "iar_HuL84Ki1SirDCivPaHG44y50",
"pending_webhooks": 0
}
你可以請求一個 transfer
對象向個人用戶或企業賬戶發起微信(僅支持向個人用戶的零錢或銀行卡轉賬)、支付寶或者銀行卡的轉賬。所有與企業付款相關的要素信息都存儲在 transfer
對象之中,你可以通過發起企業付款請求創建新的 transfer
對象,也可以隨時查看企業付款對象的狀態。每個 transfer
對象都擁有一個標識 id
,該 id
在系統內唯一。
注:微信企業付款區分"企業付款到零錢"和"企業付款到銀行卡",使用此功能時請確保在微信處開通相應產品。此外,使用微信服務商模式商戶暫不支持企業付款。
屬性 | 描述 |
---|---|
id string | 企業付款對象
id
,由 Ping++ 生成,27 位長度字符串。 |
object string | 值為 "transfer"。 |
type string | 付款類型,轉賬到個人用戶為 b2c,轉賬到企業用戶為 b2b(wx、wx_pub、wx_lite 和 balance 渠道的企業付款,僅支持 b2c)。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
time_transferred timestamp | 支付完成時間, 用 Unix 時間戳表示。由第三方支付渠道返回。 |
livemode boolean | 是否是
live
模式。 |
status string | 付款狀態。目前支持 4 種狀態:pending: 處理中; paid: 付款成功; failed: 付款失敗; scheduled: 待發送。 |
app expandable string | 轉賬對應的
app
對象的
id
。
expandable
可展開,查看
如何獲取App ID
。 |
channel string | 付款使用的第三方支付渠道名稱。目前支持
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯電子代付)、
allinpay
(通聯代付)、
jdpay
(京東代付)和
balance
(余額)。 |
order_no string | 付款使用的商戶內部訂單號。
wx/wx_pub/wx_lite
規定為 1 ~ 32 位不能重復的數字字母組合;
alipay
為 1 ~ 64 位不能重復的數字字母組合;
unionpay
為 1 ~ 16 位的純數字;
allinpay
為 20 ~ 40 位不能重復的數字字母組合,必須以簽約的通聯的商戶號開頭(建議組合格式:通聯商戶號 + 時間戳 + 固定位數順序流水號,不包含
+
號);
jdpay
為 1 ~ 64 位不能重復的數字字母組合;
balance
為 1 ~ 64 位不能重復的數字字母組合,支持"-"和"_"。 |
amount int | 付款金額,相關渠道的限額,請查看 幫助中心 。單位為對應幣種的最小貨幣單位,例如:人民幣為分。 |
amount_settle int | 清算金額,單位為對應幣種的最小貨幣單位,例如:人民幣為分。 |
currency string | 三位 ISO 貨幣代碼,目前僅支持人民幣 cny。 |
recipient string | 接收者 id,使用微信企業付款到零錢時為用戶在
wx
、
wx_pub
及
wx_lite
渠道下的
open_id
,使用企業付款到銀行卡時不需要此參數;渠道為
unionpay
時,不需要傳該參數;渠道為
alipay
時,若 type 為 b2c,為個人支付寶賬號,若 type 為 b2b,為企業支付寶賬號;渠道為
jdpay
和
allinpay
時,可不傳該參數。渠道為
balance
時,為用戶在當前 app 下的用戶 id。 |
description string | 備注信息,最多 255 個 Unicode 字符。渠道為
unionpay
時,最多 99 個 Unicode 字符,不可包含特殊字符;渠道為
wx
、
wx_pub
、
wx_lite
時,最多 99 個英文和數字的組合或最多 33 個中文字符,不可包含特殊字符;渠道為
alipay
和
jdpay
時,最多 100 個 Unicode 字符;渠道為
allinpay
時,最多 30 個 Unicode 字符;渠道為
balance
時,最多 255 個 Unicode 字符。 |
metadata hash | 參考 元數據 。 |
transaction_no string | 交易流水號,由第三方渠道提供。 |
failure_msg string | 企業付款訂單的錯誤消息的描述。 |
extra hash | transfer
相關的附加參數,詳情參考
extra 參數說明
。 |
{
"id": "tr_HqbzHCvLOaL4La1ezHfDWTqH",
"object": "transfer",
"type": "b2c",
"created": 1432724825,
"time_transferred": null,
"livemode": true,
"status": "pending",
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "wx_pub",
"order_no": "123456789",
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"recipient": "o7zpMs5MW2-52GAy5hRrjdYVCktU",
"description": "Your Description",
"transaction_no": "1000018301201505200184147302",
"failure_msg":null,
"extra": {
"user_name": "User Name",
"force_check": true
}
}
你可以請求一個新的 transfer
對象發起一次企業付款。如果支付失敗,請檢查錯誤信息,一般是由于賬戶余額不足引起的。
使用測試模式的 API Key,則不會發生真實交易。測試模式需要調用 查詢 接口更新 test 模式下transfer
對象的狀態,Ping++ 才會發送 Webhooks 通知。
注:1、渠道為 wx_lite
、alipay
、unionpay
、allinpay
和 jdpay
時,強制要求 簽名 (Pingplusplus-Signature),需在管理平臺上 配置商戶公鑰 ;2、微信企業付款區分"企業付款到零錢"和"企業付款到銀行卡",使用此功能時請確保在微信處開通相應產品。此外,使用微信服務商模式商戶暫不支持企業付款。
請求參數 | 描述 |
---|---|
app [ id ] expandable required string | 轉賬使用的
app
對象的
id
,
expandable
可展開,查看
如何獲取App ID
。 |
channel required string | 付款使用的第三方支付渠道名稱。目前支持
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯電子代付)、
allinpay
(通聯代付)、
jdpay
(京東代付)和
balance
(余額)。 |
order_no required string | 付款使用的商戶內部訂單號。
wx/wx_pub/wx_lite
規定為 1 ~ 32 位不能重復的數字字母組合;
alipay
為 1 ~ 64 位不能重復的數字字母組合;
unionpay
為 1 ~ 16 位的純數字;
allinpay
為 20 ~ 40 位不能重復的數字字母組合,必須以簽約的通聯的商戶號開頭(建議組合格式:通聯商戶號 + 時間戳 + 固定位數順序流水號,不包含
+
號);
jdpay
為 1 ~ 64 位不能重復的數字字母組合;
balance
為 1 ~ 64 位不能重復的數字字母組合,支持"-"和"_"。 |
amount required int | 付款金額,相關渠道的限額,請查看 幫助中心 。單位為對應幣種的最小貨幣單位,例如:人民幣為分。 |
type required string | 付款類型,轉賬到個人用戶為 b2c,轉賬到企業用戶為 b2b(wx、wx_pub、wx_lite 和 balance 渠道的企業付款,僅支持 b2c)。 |
currency required string | 三位 ISO 貨幣代碼,目前僅支持人民幣:
cny
。 |
recipient required string | 接收者 id,使用微信企業付款到零錢時為用戶在
wx
、
wx_pub
及
wx_lite
渠道下的
open_id
,使用企業付款到銀行卡時不需要此參數;渠道為
unionpay
時,不需要傳該參數;渠道為
alipay
時,若 type 為 b2c,為個人支付寶賬號,若 type 為 b2b,為企業支付寶賬號;渠道為
jdpay
和
allinpay
時,可不傳該參數。渠道為
balance
時,為用戶在當前 app 下的用戶 id。 |
description required string | 備注信息,最多 255 個 Unicode 字符。渠道為
unionpay
時,最多 99 個 Unicode 字符,不可包含特殊字符;渠道為
wx
、
wx_pub
、
wx_lite
時,最多 99 個英文和數字的組合或最多 33 個中文字符,不可以包含特殊字符;渠道為
alipay
和
jdpay
時,最多 100 個 Unicode 字符;渠道為
allinpay
時,最多 30 個 Unicode 字符;渠道為
balance
時,最多 255 個 Unicode 字符。 |
metadata optional hash | 參考 元數據 。 |
extra optional hash | 相關的附加參數,詳情參考 extra 參數說明 。 |
extra 參數說明
wx、wx_pub、wx_lite 微信企業付款
參數 | 說明 |
---|---|
user_name optional,string | 收款人姓名。當該參數為空,則不校驗收款人姓名。使用企業付款至個人銀行卡時,該參數必傳。 |
force_check optional,boolean | 是否強制校驗收款人姓名。僅當
user_name
參數不為空時該參數生效。使用企業付款至個人銀行卡時,該參數無效。 |
card_number optional,string | 收款人銀行卡號。傳入該參數時,表示使用企業付款至個人銀行卡。不能與
recipient
參數同時傳入。 |
open_bank_code optional,string | 開戶銀行編號。使用企業付款至個人銀行卡時,該參數必傳。詳情請參考 微信企業付款銀行編號說明 。 |
alipay 支付寶企業付款
參數 | 說明 |
---|---|
recipient_name required string | 收款人姓名,1~50位。在 alipay 為 1.0 接口時必填,在 alipay 為 2.0 接口時選填。 |
recipient_account_type optional,string | 收款方賬戶類型。默認值:"ALIPAY_LOGONID"。ALIPAY_USERID:支付寶賬號對應的支付寶唯一用戶號,以 2088 開頭的 16 位純數字組成;ALIPAY_LOGONID:支付寶登錄號,支持郵箱和手機號格式。 |
unionpay 銀聯電子代付
參數 | 說明 |
---|---|
card_number required string | 1~32位,收款人銀行卡號或者存折號。 |
user_name required string | 1~100位,收款人姓名。 |
open_bank_code optional,string | 4位,開戶銀行編號,詳情請參考 銀聯電子代付銀行編號說明 。 |
open_bank optional,string | 1~50位,開戶銀行。 |
prov optional,string | 1~20位,省份。 |
city optional,string | 1~40位,城市。 |
sub_bank optional,string | 1~80位,開戶支行名稱。 |
注:open_bank_code
和 open_bank
兩個參數必傳一個,建議使用 open_bank_code
,若都傳參則優先使用 open_bank_code
讀取規則;prov
和 city
均為可選參數,如果不傳參,則使用默認值 "上海" 給渠道接口。
allinpay 通聯代付
參數 | 說明 |
---|---|
card_number required string | 1~32位,收款人銀行卡號或者存折號。 |
user_name required string | 1~100位,收款人姓名。 |
open_bank_code required string | 4位,開戶銀行編號,詳情請參考 通聯代付銀行編號說明 。 |
business_code optional,string | 5位,業務代碼,根據通聯業務人員提供,不填使用通聯提供默認值
09900
。詳情請參考
通聯代付業務代碼說明
。 |
card_type optional,string | 1位,銀行卡號類型。0:銀行卡、1:存折、2:信用卡。不填默認使用銀行卡。 |
sub_bank optional,string | B2B 轉賬必填,1~80位,開戶行詳細名稱,也叫網點,如:中國建設銀行廣州東山廣場分理處。詳情請下載 支付行號 。 |
sub_bank_code optional,string | B2B 轉賬必填,1~12位,支付行號。詳情請下載 支付行號 。 |
prov optional,string | B2B 轉賬必填,1~20位,省份,不帶 “省” 或 “自治區”,需填寫成:廣東、廣西、內蒙古等。詳情請參考 中國郵政區號表 內的「省洲名稱」列的內容填寫。 |
city optional,string | B2B 轉賬必填,1~40位,城市,不帶 “市”,需填寫成:廣州、南寧等。如果是直轄市,則填區,如北京(市)朝陽(區)。詳情請參考 中國郵政區號表 內的「地區名稱」列的內容填寫。 |
jdpay 京東代付
參數 | 說明 |
---|---|
card_number required string | 1~32位,收款人銀行卡號或者存折號。 |
user_name required string | 1~100位,收款人姓名。 |
open_bank_code required string | 4位,開戶銀行編號,詳情請參考 京東代付銀行編號說明 。 |
card_type optional,string | 1位,銀行卡號類型。0:銀行卡、2:信用卡。不填默認使用銀行卡。 |
返回
同步返回付款支付結果。如果發生錯誤,則會返回錯誤碼和錯誤詳情,詳見 錯誤。
POST https://api.pingxx.com/v1/transfers
curl https://api.pingxx.com/v1/transfers \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d order_no=123456789 \
-d app[id]=app_1Gqj58ynP0mHeX1q \
-d channel=wx_pub \
-d amount=100 \
-d currency=cny \
-d type=b2c \
-d recipient=Openid \
-d description="Your Description"
{
"id": "tr_HqbzHCvLOaL4La1ezHfDWTqH",
"object": "transfer",
"type": "b2c",
"created": 1432724825,
"time_transferred": null,
"livemode": true,
"status": "pending",
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "wx_pub",
"order_no": "123456789",
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"recipient": "o7zpMs5MW2-52GAy5hRrjdYVCktU",
"description": "Your Description",
"transaction_no": "1000018301201505200184147302",
"failure_msg":null,
"extra": {
"user_name": "User Name",
"force_check": true
}
}
通過 transfer
對象的 id
查詢一個已創建的 transfer
對象。
屬性 | 描述 |
---|---|
TRANSFER_ID required string | 付款對象
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個已存在的 transfer
對象或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/transfers/{TRANSFER_ID}
curl https://api.pingxx.com/v1/transfers/tr_HqbzHCvLOaL4La1ezHfDWTqH \ -u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "tr_HqbzHCvLOaL4La1ezHfDWTqH",
"object": "transfer",
"type": "b2c",
"created": 1432724825,
"time_transferred": null,
"livemode": true,
"status": "pending",
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "wx_pub",
"order_no": "123456789",
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"recipient": "o7zpMs5MW2-52GAy5hRrjdYVCktU",
"description": "Your Description",
"transaction_no": "1000018301201505200184147302",
"failure_msg":null,
"extra": {
"user_name": "User Name",
"force_check": true
}
}
返回之前創建過 transfer
對象的一個列表。列表是按創建時間進行排序,總是將最新的 transfer
對象顯示在最前。
請求參數 | 描述 |
---|---|
limit optional int | 限制每頁可以返回多少對象,范圍為 1~100 項,默認是 10 項。 |
starting_after optional string | 在分頁時使用的指針,決定了列表的第一項從何處開始。假設你的一次請求返回列表的最后一項的
id
是
obj_end
,你可以使用
starting_after
=
obj_end
去獲取下一頁。 |
ending_before optional string | 在分頁時使用的指針,決定了列表的最末項在何處結束。假設你的一次請求返回列表的第一項的
id
是
obj_start
,你可以使用
ending_before
=
obj_start
去獲取上一頁。 |
created optional timestamp | 對象的創建時間,用 Unix 時間戳表示,具體參考下表
created
參數。 |
app [ id ] expandable optional string | 轉賬使用的
app
對象的
id
,
expandable
可展開,查看
如何獲取App ID
。 |
channel optional string | 付款使用的第三方支付渠道名稱。目前支持
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯電子代付)、
allinpay
(通聯代付)、
jdpay
(京東代付)和
balance
(余額)。 |
status optional string | 付款狀態。目前支持 4 種狀態:pending: 處理中; paid: 付款成功; failed: 付款失敗; scheduled: 待發送。 |
type optional string | 付款類型,轉賬到個人用戶為 b2c,轉賬到企業用戶為 b2b。 |
created 參數說明 | 描述 |
---|---|
created [ gt ] optional int | 大于
transfer
對象的創建時間,用 Unix 時間戳表示。 |
created [ gte ] optional int | 大于或等于
transfer
對象的創建時間,用 Unix 時間戳表示。 |
created [ lt ] optional int | 小于
transfer
對象的創建時間,用 Unix 時間戳表示。 |
created [ lte ] optional int | 小于或等于
transfer
對象的創建時間,用 Unix 時間戳表示。 |
返回
返回一個已存在的 transfer
對象的列表或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/transfers?expand[]=app
curl https://api.pingxx.com/v1/transfers/?limit=3&expand[]=app
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"object": "list",
"url": "/v1/transfers",
"has_more": true,
"data": [
{
"id": "tr_HqbzHCvLOaL4La1ezHfDWTqH",
"object": "transfer",
"type": "b2c",
"created": 1432724825,
"time_transferred": null,
"livemode": true,
"status": "pending",
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "wx_pub",
"order_no": "123456789",
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"recipient": "Openid",
"description": "Your Description",
"transaction_no": "1000018301201505200184147302",
"failure_msg":null,
"extra": {
"user_name": "User Name",
"force_check": true
}
}
]
}
該類型的 Event 對象會在 transfer
對象付款成功或失敗時觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
transfer.succeeded | 付款成功時觸發。 |
transfer.failed | 付款失敗時觸發。 |
付款成功: { "id": "evt_NMO13SJt1jrOaxRMhXC4wj0k", "created": 1435752329, "type": "transfer.succeeded", "livemode": true, "object": "event", "data": { "object": { "id": "tr_fXTq1OHufjHOvbDiPG0qTSiP", "object": "transfer", "type": "b2c", "created": 1435752318, "time_transferred": 1435752318, "livemode": true, "status": "paid", "app": "app_1234567890abcDEF", "channel": "wx_pub", "order_no": "123456789", "amount": 1, "amount_settle": 1, "currency": "cny", "recipient": "Openid", "description": "Your Description", "transaction_no": "1010018301201507010307923793", "extra": { "user_name": "User Name", "force_check": true } } }, "pending_webhooks": 0, "request": "iar_TqvPiDH8SGeHm5GaTKbLuDWL" } 付款失敗: { "id": "evt_NMO13SJt1jrOaxRMhXC4wjkk", "created": 1435752329, "type": "transfer.failed”, "livemode": true, "object": "event", "data": { "object": { "id": "tr_fXTq1OHufjHOvbDiPG0qTSiP", "object": "transfer", "type": "b2c", "created": 1435752318, "time_transferred": 1435752318, "livemode": true, "status": "failed", "app": "app_1234567890abcDEF", "channel": "wx_pub", "order_no": "123456789", "amount": 1, "amount_settle": 1, "currency": "cny", "recipient": "Openid", "description": "Your Description", "transaction_no": "1010018301201507010307923793", "extra": { "user_name": "User Name", "force_check": true } } }, "pending_webhooks": 0, "request": "iar_TqvPiDH8SGeHm5GaTKbLuDkk" }
此批量付款接口適用于以下 8 個渠道:支付寶 alipay
、銀聯電子代付 unionpay
、微信 App wx
、微信公眾號 wx_pub
、微信小程序 wx_lite
、通聯代付 allinpay
、京東代付 jdpay
、余額 balance
。
以下是該付款接口的注意點:
fee
字段會在批量企業付款成功后更新;支付寶 openapi 接口無手續費,詳情參考 幫助中心 。status
包含一個特殊的 partially_succeeded
狀態,若批量企業付款中存在部分成功,部分失敗的情況,批量企業付款對象將處于該狀態,對于成功部分的付款也會發送 batch_transfer.succeeded 事件。batch_transfer
的 recipients
字段里的元素中,會有每筆付款對象的 transfer
(對應的 transfer
對象 ID
) 和 status
(對應的 transfer
對象狀態)字段。Pingplusplus-Signature
字段,需在管理平臺上 配置商戶公鑰;同時必須在請求頭中添加 Pingplusplus-Request-Timestamp
字段,其值為請求接口的 Unix
時間戳。屬性 | 描述 |
---|---|
id string | 由 Ping++ 生成的批量企業付款對象
ID
。 |
object string | 值為
batch_transfer
。 |
app string | 創建批量企業付款使用的
app
對象
id
,查看
如何獲取App ID
。 |
amount int | 批量企業付款總金額。 |
batch_no string | 批量企業付款批次號,11 ~ 32 位,允許字母和英文。 |
channel string | 渠道參數,目前支持
alipay
(支付寶,包含 mapi 和 openapi 接口)、
unionpay
(銀聯電子代付)、
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
allinpay
(通聯代付)、
jdpay
(京東代付)和
balance
(余額)。 |
currency string | 三位 ISO 貨幣代碼,人民幣為
cny
。 |
created int | 批量企業付款創建時的
Unix
時間戳。 |
description string | 批量企業付款描述。 |
extra hash | 額外信息,當前該字段為空。 |
failure_msg string | 錯誤消息的描述。首次請求支付寶 mapi 批量企業付款成功時,該字段包含了確認付款的
URL
鏈接地址,僅在渠道為支付寶時有值,你需要獲取該地址,在瀏覽器中打開并且輸入支付寶商戶密碼才能完成批量企業付款;支付寶 openapi 產品接口無密,所以首次請求的
URL
中無付款鏈接;批量銀聯電子代付的接口不需要輸入密碼。 |
fee int | 批量企業付款手續費。 |
livemode boolean | 是否處于
live
模式。 |
metadata hash | 參考 元數據 。 |
recipients array | 接收者信息。具體參考下表的 recipients 參數說明 。 |
status string | 批量企業付款狀態。目前支持 6 種狀態,created: 已創建;pending: 處理中;succeeded: 成功;failed: 失敗;partially_succeeded: 部分成功;scheduled: 待發送。 |
time_succeeded int | 成功的
Unix
時間戳。 |
type string | 付款類型,取值范圍:b2c(打款給個人用戶)和 b2b(打款給企業用戶)。當前
wx、wx_pub、wx_lite、balance
僅支持:b2c ;
alipay、unionpay、allinpay
和
jdpay
支持:b2b、b2c。 |
recipients 參數說明 | 描述 |
---|---|
account string | 接收者賬號。 |
amount int | 付款金額。 |
name string | 接收者姓名。 |
description string | 批量企業付款描述。 |
transfer string | 對應的單筆
transfer
對象
ID
。 |
status string | 對應的單筆
transfer
對象狀態。 |
open_bank string | 1~15位,開戶銀行名稱,unionpay 渠道會用到此字段。 |
open_bank_code string | 4位,開戶銀行編號,unionpay / allinpay 渠道會用到此字段,詳情請參考 銀聯電子代付銀行編號說明 或 通聯代付銀行編號說明 。 |
account_type string | 賬戶類型,支付寶 openapi 渠道會用到此字段。默認值:"ALIPAY_LOGONID"。ALIPAY_USERID:支付寶賬號對應的支付寶唯一用戶號,以 2088 開頭的 16 位純數字組成;ALIPAY_LOGONID:支付寶登錄號,支持郵箱和手機號格式。 |
fee int | 單筆 transfer 的渠道手續費。 |
failure_msg string | 單筆 transfer 的錯誤信息。 |
order_no string | 單筆 transfer 的訂單號,可選字段,如果不傳程序就自動生成。 |
transaction_no string | 單筆 transfer 的流水號。 |
business_code string | 5位業務代碼,allinpay 渠道會用到此字段,根據通聯業務人員提供,不填使用通聯提供默認值 09900。 |
card_type int | 銀行卡號類型,allinpay 渠道會用到此字段。1位,0:銀行卡、1:存折、2:信用卡,不填默認使用銀行卡。 |
sub_bank string | allinpay 渠道會用到此字段,B2B 轉賬必填,1~80位,開戶行詳細名稱,也叫網點,如:中國建設銀行廣州東山廣場分理處。詳情請下載 支付行號 。 |
sub_bank_code string | allinpay 渠道會用到此字段,B2B 轉賬必填,1~12位,支付行號。詳情請下載 支付行號 。 |
prov string | allinpay 渠道會用到此字段,B2B 轉賬必填,1~20位,省份,不帶 “省” 或 “自治區”,需填寫成:廣東、廣西、內蒙古等。詳情請參考 中國郵政區號表 內的「省洲名稱」列的內容填寫。 |
city string | allinpay 渠道會用到此字段,B2B 轉賬必填,1~40位,城市,不帶 “市”,需填寫成:廣州、南寧等。如果是直轄市,則填區,如北京(市)朝陽(區)。詳情請參考 中國郵政區號表 內的「地區名稱」列的內容填寫。 |
{
"id": "181610101014367590",
"object": "batch_transfer",
"app": "app_ribgW1n2SOqcPxn1",
"amount": 8000,
"batch_no": "2016101010380007",
"channel": "alipay",
"currency": "cny",
"created": 1476067087,
"description": "付款說明",
"extra": {},
"failure_msg": null,
"fee": 0,
"livemode": true,
"metadata": {},
"recipients": [
{
"account": "[email protected]",
"amount": 5000,
"name": "張三",
"transfer": "tr_jHWfvDnTKG0SiPmbfPbHW1eH",
"status": "pending"
},
{
"account": "[email protected]",
"amount": 3000,
"name": "李四",
"transfer": "tr_8u1yPK1eHWv9D08OePzDe1CK",
"status": "pending"
}
],
"status": "pending",
"time_succeeded": null,
"type": "b2c"
}
創建一個 batch transfer
對象來發起批量企業付款。注:微信服務商模式商戶暫不支持企業付款。
請求參數 | 描述 |
---|---|
app required string | 批量企業付款對應的
app
對象
id
,查看
如何獲取App ID
。 |
batch_no required string | 批量企業付款批次號,11 ~ 32 位,允許字母和英文。 |
channel required string | 渠道參數,目前支持
alipay
(支付寶,包含 mapi 和 openapi 接口)、
unionpay
(銀聯電子代付)、
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
allinpay
(通聯代付)、
jdpay
(京東代付)和
balance
(余額)。 |
amount required int | 批量企業付款總金額,單位為分。 |
description required string | 批量企業付款描述,最多 200 個字節。 |
metadata optional hash | 參考 元數據 。 |
recipients required string | 接收者信息。具體參考下表的針對各渠道的 recipients 參數說明 。 |
currency optional string | 三位 ISO 貨幣代碼,人民幣為
cny
。 |
type required string | 付款類型,取值范圍:b2c(打款給個人用戶)和 b2b(打款給企業用戶)。當前
wx、wx_pub、wx_lite、balance
僅支持:b2c ;
alipay、unionpay、allinpay
和
jdpay
支持:b2b、b2c。 |
recipients 參數說明
alipay | 描述 |
---|---|
account required string | 接收者支付寶賬號。 |
amount required int | 金額,單位為分 |
name required string | 接收者姓名。在 alipay 為 mapi 接口時必填,在 alipay 為 openapi 接口時選填。 |
description optional string | 批量企業付款描述,最多 200 字節。 |
account_type optional string | 賬戶類型,alipay openapi 渠道會用到此字段。默認值:"ALIPAY_LOGONID"。ALIPAY_USERID:支付寶賬號對應的支付寶唯一用戶號,以 2088 開頭的 16 位純數字組成;ALIPAY_LOGONID:支付寶登錄號,支持郵箱和手機號格式。 |
order_no optional string | 訂單號, 1 ~ 64 位不能重復的數字字母組合。 |
unionpay | 描述 |
---|---|
account required string | 接收者銀行卡賬號。 |
amount required int | 付款金額,單位為分。 |
name required string | 接收者姓名。 |
description optional string | 批量企業付款描述,最多 200 字節。 |
open_bank optional string | 1~15位,開戶銀行。 |
open_bank_code optional string | 4位,開戶銀行編號,詳情請參考 銀聯電子代付銀行編號說明 。 |
order_no optional string | 訂單號,1 ~ 16 位不能重復的數字字母組合。 |
注: open_bank_code
和 open_bank
兩個參數必傳一個,建議使用 open_bank_code
,若都傳參則優先使用 open_bank_code
讀取規則。
wx、wx_pub、wx_lite | 描述 |
---|---|
open_id required string | 接收者的 open_id。點此參考
如何獲取
open_id
。 |
amount required int | 金額,單位為分。 |
name optional string | 收款人姓名。當該參數為空,則不校驗收款人姓名。使用企業付款至個人銀行卡時,該參數必傳。 |
description optional string | 不填默認使用外層參數中的 description 最多 99 個英文和數字的組合或最多 33 個中文字符,不可以包含特殊字符。 |
force_check optional boolean | 是否強制校驗收款人姓名。僅當
name
參數不為空時該參數生效。使用企業付款至個人銀行卡時,該參數無效。 |
order_no optional string | 訂單號,1 ~ 32 位不能重復的數字字母組合。 |
account optional,string | 收款人銀行卡號。傳入該參數時,表示使用企業付款至個人銀行卡。不能與
open_id
參數同時傳入。 |
open_bank_code optional,string | 開戶銀行編號。使用企業付款至個人銀行卡時,該參數必傳。詳情請參考 微信企業付款銀行編號說明 。 |
allinpay | 描述 |
---|---|
account required string | 接收者銀行卡賬號。 |
amount required int | 付款金額,單位為分。 |
name required string | 接收者姓名。 |
open_bank_code required string | 4位,銀行編號。詳情請參考 通聯代付銀行編號說明 。 |
business_code optional string | 5位業務代碼,根據通聯業務人員提供,不填使用通聯提供默認值 09900。詳情請參考 通聯代付業務代碼說明 。 |
description optional string | 批量企業付款描述,最多 30 個 Unicode 字符。 |
card_type optional int | 銀行卡號類型。0:銀行卡、1:存折、2:信用卡,不填默認使用銀行卡。 |
order_no optional string | 訂單號,20 ~ 40 位不能重復的數字字母組合(必須以通聯的商戶號開頭,建議組合格式:通聯商戶號 + 時間戳 + 固定位數順序流水號,不包含+號),這里不傳的話程序會調用商戶的通聯商戶號加上隨機數自動生成 order_no。 |
sub_bank optional,string | B2B 轉賬必填,1~80位,開戶行詳細名稱,也叫網點,如:中國建設銀行廣州東山廣場分理處。詳情請下載 支付行號 。 |
sub_bank_code optional,string | B2B 轉賬必填,1~12位,支付行號。詳情請下載 支付行號 。 |
prov optional,string | B2B 轉賬必填,1~20位,省份,不帶 “省” 或 “自治區”,需填寫成:廣東、廣西、內蒙古等。詳情請參考 中國郵政區號表 內的「省洲名稱」列的內容填寫。 |
city optional,string | B2B 轉賬必填,1~40位,城市,不帶 “市”,需填寫成:廣州、南寧等。如果是直轄市,則填區,如北京(市)朝陽(區)。詳情請參考 中國郵政區號表 內的「地區名稱」列的內容填寫。 |
jdpay | 描述 |
---|---|
account required string | 接收者銀行卡賬號。 |
amount required int | 付款金額,單位為分。 |
name required string | 接收者姓名。 |
open_bank_code required string | 4位,銀行編號。 |
order_no optional string | 訂單號,jdpay 限長 1~64 位不能重復的數字字母組合。 |
card_type optional int | 銀行卡號類型。0:銀行卡、2:信用卡,不填默認使用銀行卡。 |
description optional string | 批量企業付款描述,最多 100 個 Unicode 字符。 |
balance | 描述 |
---|---|
user required string | 接收者用戶 ID。 |
amount required int | 付款金額,單位為分。 |
order_no optional string | 訂單號,1~64 位不能重復的數字字母組合。 |
description optional string | 批量企業付款描述,最多 100 個 Unicode 字符。 |
返回
返回一個 batch transfer
對象或者一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/batch_transfers
curl https://api.pingxx.com/v1/batch_transfers \
-H "Content-Type: application/json; charset=utf-8" \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1476067085" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"amount": 8000,
"app": "app_ribgW1n2SOqcPxn1",
"batch_no": "2016101010380007",
"channel": "alipay",
"description": "付款說明",
"recipients": [
{
"account": "[email protected]",
"amount": 5000,
"name": "張三"
},
{
"account": "[email protected]",
"amount": 3000,
"name": "李四"
}
],
"type": "b2c"
}'
{
"id": "181610101014367590",
"object": "batch_transfer",
"app": "app_ribgW1n2SOqcPxn1",
"amount": 8000,
"batch_no": "2016101010380007",
"channel": "alipay",
"currency": "cny",
"created": 1476067087,
"description": "付款說明",
"extra": {},
"failure_msg": null,
"fee": 0,
"livemode": true,
"metadata": {},
"recipients": [
{
"account": "[email protected]",
"amount": 5000,
"name": "張三",
"transfer": "tr_jHWfvDnTKG0SiPmbfPbHW1eH",
"status": "pending"
},
{
"account": "[email protected]",
"amount": 3000,
"name": "李四",
"transfer": "tr_8u1yPK1eHWv9D08OePzDe1CK",
"status": "pending"
}
],
"status": "pending",
"time_succeeded": null,
"type": "b2c"
}
你可以使用 batch_transfer_id
來查詢對應的 batch transfer
對象信息。
請求參數 | 描述 |
---|---|
BATCH_TRANSFER_ID REQUIRED string | 批量企業付款對象
id
,由 Ping++ 生成,該參數僅需要填寫在請求地址內。 |
返回
返回一個 batch transfer
對象或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/batch_transfers/{BATCH_TRANSFER_ID}
curl https://api.pingxx.com/v1/batch_transfers/181610101014367590 \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1476067095" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "1818282929292221323",
"object": "batch_transfer",
"app": "app_ribgW1n2SOqcPxn1",
"amount": 8000,
"batch_no": "1231231231",
"channel": "alipay",
"currency": "cny",
"created": 1111111,
"description": "付款說明",
"extra": {},
"failure_msg": null,
"fee": 100,
"livemode": true,
"metadata": {},
"recipients": [
{
"account": "[email protected]",
"amount": 5000,
"name": "張三",
"transfer": "tr_jHWfvDnTKG0SiPmbfPbHW1eH",
"status": "pending"
},
{
"account": "[email protected]",
"amount": 3000,
"name": "李四",
"transfer": "tr_8u1yPK1eHWv9D08OePzDe1CK",
"status": "pending"
}
],
"status": "pending",
"time_succeeded": 123123123,
"type": "b2c"
}
你可以使用調用該接口來查詢對應的 batch transfer
對象列表信息。
請求參數 | 描述 |
---|---|
page optional int | 頁碼,取值范圍:1~1000000000;默認值為"1"。 |
per_page optional int | 每頁數量,取值范圍:1~100;默認值為"10"。 |
created [ gt ] optional int | 創建時間大于該值。 |
created [ gte ] optional int | 創建時間大于或等于該值。 |
created [ lt ] optional int | 創建時間小于該值。 |
created [ lte ] optional int | 創建時間小于或等于該值。 |
app optional string | 批量企業付款對應的 app 對象 ID,查看 如何獲取App ID 。 |
返回
返回一個 batch transfer
對象列表或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/batch_transfers?app={app_id}
curl https://api.pingxx.com/v1/batch_transfers?app=app_ribgW1n2SOqcPxn1&per_page=3 \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1476067095" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/batch_transfers", "has_more": true, "data": [ { "id": "181610101014367590", "object": "batch_transfer", "app": "app_ribgW1n2SOqcPxn1", "amount": 8000, "batch_no": "2016101010380007", "channel": "alipay", "currency": "cny", "created": 1476067087, "description": "付款說明", "extra": {}, "failure_msg": null, "fee": 0, "livemode": true, "metadata": {}, "recipients": [ { "account": "[email protected]", "amount": 5000, "name": "張三", "transfer": "tr_jHWfvDnTKG0SiPmbfPbHW1eH", "status": "pending" }, { "account": "[email protected]", "amount": 3000, "name": "李四", "transfer": "tr_8u1yPK1eHWv9D08OePzDe1CK", "status": "pending" } ], "status": "pending", "time_succeeded": null, "type": "b2c" }, {...}, {...} ] }
該類型的 Event 對象會在 batch_transfer
對象批量付款成功后觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
batch_transfer.succeeded | 批量企業付款成功時觸發。 |
batch_transfer.failed | 批量企業付款全部失敗時觸發。 |
{
"id": "evt_ca16CoQsiP2ja1JKs5gx3j4q",
"object": "event",
"created": 1475924802,
"livemode": false,
"data": {
"object": {
"id": "181610101014367590",
"object": "batch_transfer",
"app": "app_ribgW1n2SOqcPxn1",
"amount": 8000,
"batch_no": "2016101010380007",
"channel": "alipay",
"currency": "cny",
"created": 1476067087,
"description": "付款說明",
"extra": {},
"failure_msg": null,
"fee": 200,
"livemode": true,
"metadata": {},
"recipients": [
{
"account": "[email protected]",
"amount": 5000,
"name": "張三",
"transfer": "tr_jHWfvDnTKG0SiPmbfPbHW1eH",
"status": "paid"
},
{
"account": "[email protected]",
"amount": 3000,
"name": "李四",
"transfer": "tr_8u1yPK1eHWv9D08OePzDe1CK",
"status": "paid"
}
],
"status": "succeeded",
"time_succeeded": 1476067147,
"type": "b2c"
}
},
"pending_webhooks": 0,
"request": "iar_1KeD0GHi58yLfDyHK4HCOyDS",
"type": "batch_transfer.succeeded"
}
你可以請求一個 red_envelope
紅包對象向你的用戶發紅包。所有和紅包支付相關的要素信息都存儲在 red_envelope
對象之中,你可以通過發起紅包請求創建新的 red_envelope
對象,也可以隨時查看紅包對象的狀態。每個 red_envelope
對象都擁有一個標識 id
,該 id
在系統內唯一。
屬性 | 描述 |
---|---|
id string | 紅包對象
id
,由 Ping++ 生成,28 位長度字符串。 |
object string | 值為
red_envelope
。 |
created timestamp | 支付紅包的時間,用 Unix 時間戳表示。 |
received timestamp | 紅包的接收時間,用 Unix 時間戳表示。 |
refunded timestamp | 紅包超過 24 小時未領取的退回時間,用 Unix 時間戳表示。 |
livemode boolean | 支付是否處于
live
模式。 |
status string | 紅包狀態。目前支持 6 種狀態:
sending
: 發放中;
sent
: 已發放待領取;
failed
: 發放失敗;
received
: 已領取;
refunding
: 退款中;
refund
: 已退款。 |
app expandable string | 紅包使用的
app
對象的
id
,
expandable
可展開,查看
如何獲取App ID
。 |
channel string | 紅包使用的第三方支付渠道。目前僅支持
wx_pub
。 |
order_no string | 紅包使用的商戶訂單號。
wx_pub
渠道規定為 1 ~ 28 位不能重復的數字。 |
transaction_no string | 第三方支付渠道的交易流水號。 |
amount int | 紅包金額。單位為對應幣種的最小貨幣單位,例如:人民幣為分。微信紅包常規限額在 100 ~ 20000 之間, 即 1~200 元。如有需要,可前往 商戶平臺 進行設置和申請紅包限額調整。 |
amount_settle int | 清算金額,單位為對應幣種的最小貨幣單位,例如:人民幣為分。 |
currency string | 三位 ISO 貨幣代碼,目前僅支持人民幣 cny。 |
recipient string | 接收者 id, 為用戶在
wx_pub
渠道下的
open_id
。 |
subject string | 紅包主題名稱,最多 32 個字節。 |
body string | 紅包祝福語,最多 128 個字節。 |
description string | 備注信息,最多 255 個字節。 |
metadata hash | 參考 元數據 。 |
failure_msg string | 紅包訂單的錯誤消息的描述。 |
extra hash | 支付渠道相關的附加參數,具體參考下表
extra
參數說明。 |
extra 參數 | 描述 |
---|---|
send_name string | 商戶名稱,最多 32 個字節。 |
scene_id string | 發放紅包使用場景,紅包金額小于 1 元或大于 200 元時必傳。具體屬性請看請求參數中的
scene_id
屬性值。 |
{
"id": "red_KCabLO58W5G0rX90iT0az5a9",
"object": "red_envelope",
"created": 1428499439,
"received": null,
"refunded": null,
"livemode": true,
"status": "sending",
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "wx_pub",
"order_no": "123456789",
"transaction_no": null,
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"recipient": "Openid",
"subject": "Your Subject",
"body": "Your Body",
"description": "Your Description",
"failure_msg":null,
"extra": {
"send_name": "Send Name"
}
}
發起一次紅包請求需要創建一個新的 red_envelope
對象。如果支付失敗,請檢查錯誤信息,一般是由于賬戶余額不足引起的。使用測試模式的 API Key,則不會發生真實交易,且需要主動調用下方的紅包查詢接口才能刷新紅包訂單的狀態且觸發 Webhooks 回調。同步返回交易結果,不會發送 Webhooks 通知。
請求參數 | 描述 |
---|---|
app [ id ] expandable required string | 紅包使用的
app
對象的
id
,
expandable
可展開,查看
如何獲取App ID
。 |
channel required string | 紅包使用的第三方支付渠道。目前僅支持
wx_pub
。 |
order_no required string | 紅包使用的商戶訂單號。
wx_pub
渠道規定為 1 ~ 28 位不能重復的數字。 |
amount required int | 紅包金額。單位為對應幣種的最小貨幣單位,例如:人民幣為分。微信紅包常規限額在 100 ~ 20000 之間, 即 1~200 元。如有需要,可前往 商戶平臺 進行設置和申請紅包限額調整。 |
currency required string | 三位 ISO 貨幣代碼,目前僅支持人民幣
cny
。 |
recipient required string | 接收者 id, 為用戶在
wx_pub
下的
open_id
。點此參考
如何獲取
open_id
。 |
subject required string | 紅包主題名稱,最多 32 個字節。 |
body required string | 紅包祝福語,最多 128 個字節。 |
description required string | 備注信息,最多 255 個字節。 |
extra required hash | 支付渠道相關的附加參數,具體參考下表
extra
參數說明。 |
metadata optional hash | 參考 元數據 。 |
extra 參數 | 描述 |
---|---|
send_name required string | 商戶名稱,最多 32 個字節。 |
scene_id optional string | 發放紅包使用場景,紅包金額小于 1 元或大于 200 元時必傳。具體屬性看
scene_id
屬性值。 |
scene_id 參數 |
描述 |
---|---|
PRODUCT_1 string | 商品促銷 |
PRODUCT_2 string | 抽獎 |
PRODUCT_3 string | 虛擬物品兌獎 |
PRODUCT_4 string | 企業內部福利 |
PRODUCT_5 string | 渠道分潤 |
PRODUCT_6 string | 保險回饋 |
PRODUCT_7 string | 彩票派獎 |
PRODUCT_8 string | 稅務刮獎 |
返回
同步返回紅包支付結果。如果發生錯誤,則會返回錯誤碼和錯誤詳情,詳見 錯誤。
POST https://api.pingxx.com/v1/red_envelopes
curl https://api.pingxx.com/v1/red_envelopes \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d order_no=123456789 \
-d app[id]=app_1Gqj58ynP0mHeX1q \
-d channel=wx_pub \
-d amount=100 \
-d currency=cny \
-d subject="Your Subject" \
-d body="Your Body" \
-d extra[send_name]="Send Name" \
-d recipient=Openid \
-d description="Your Description"
{
"id": "red_KCabLO58W5G0rX90iT0az5a9",
"object": "red_envelope",
"created": 1428499439,
"received": null,
"refunded": null,
"livemode": true,
"status": "sending",
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "wx_pub",
"order_no": "123456789",
"transaction_no": null,
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"recipient": "Openid",
"subject": "Your Subject",
"body": "Your Body",
"description": "Your Description",
"failure_msg":null,
"extra": {
"send_name": "Send Name"
}
}
通過 red_envelope
對象的 id
查詢一個已創建的 red_envelope
對象。
請求參數 | 描述 |
---|---|
RED_ID required string | 紅包
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個已存在的 red_envelope
對象或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/red_envelopes/{RED_ID}
curl https://api.pingxx.com/v1/red_envelopes/red_KCabLO58W5G0rX90iT0az5a9 \ -u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "red_KCabLO58W5G0rX90iT0az5a9",
"object": "red_envelope",
"created": 1428499439,
"received": null,
"refunded": null,
"livemode": true,
"status": "sending",
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "wx_pub",
"order_no": "123456789",
"transaction_no": null,
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"recipient": "Openid",
"subject": "Your Subject",
"body": "Your Body",
"description": "Your Description",
"failure_msg":null,
"extra": {
"send_name": "Send Name"
}
}
返回之前創建 red_envelope
對象的一個列表。列表是按創建時間進行排序,總是將最新的 red_envelope
對象顯示在最前。
請求參數 | 描述 |
---|---|
limit optional int | 限制每頁可以返回多少對象,范圍為 1~100 項,默認是 10 項。 |
starting_after optional string | 在分頁時使用的指針,決定了列表的第一項從何處開始。假設你的一次請求返回列表的最后一項的
id
是
obj_end
,你可以使用
starting_after
=
obj_end
去獲取下一頁。 |
ending_before optional string | 在分頁時使用的指針,決定了列表的最末項在何處結束。假設你的一次請求返回列表的第一項的
id
是
obj_start
,你可以使用
ending_before
=
obj_start
去獲取上一頁。 |
app [ id ] expandable required string | 紅包使用的
app
對象的
id
,
expandable
可展開,查看
如何獲取App ID
。 |
channel optional string | 支付使用的第三方支付渠道,目前僅支持
wx_pub
。 |
status optional string | 紅包狀態。目前支持 6 種狀態:
sending
: 發放中;
sent
: 已發放待領取;
failed
: 發放失敗;
received
: 已領取;
refunding
: 退款中;
refund
: 已退款。 |
created optional timestamp | 對象的創建時間,用 Unix 時間戳表示,具體參考下表
created
參數。 |
created 參數 | 描述 |
---|---|
created [ gt ] optional int | 大于
red_envelope
對象的創建時間,用 Unix 時間戳表示。 |
created [ gte ] optional int | 大于或等于
red_envelope
對象的創建時間,用 Unix 時間戳表示。 |
created [ lt ] optional int | 小于
red_envelope
對象的創建時間,用 Unix 時間戳表示。 |
created [ lte ] optional int | 小于或等于
red_envelope
對象的創建時間,用 Unix 時間戳表示。 |
返回
根據請求參數返回一個 red_envelope
對象列表,如果列表為空,則返回的 data
為空數組。遇到錯誤時返回相應錯誤信息,詳見 錯誤。
GET https://api.pingxx.com/v1/red_envelopes?expand[]=app
curl https://api.pingxx.com/v1/red_envelopes/?limit=3?expand[]=app \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"object": "list",
"url": "/v1/red_envelopes",
"has_more": true,
"data": [
{
"id": "red_KCabLO58W5G0rX90iT0az5a9",
"object": "red_envelope",
"created": 1428499439,
"received": null,
"refunded": null,
"livemode": true,
"status": "sending",
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "wx_pub",
"order_no": "123456789",
"transaction_no": null,
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"recipient": "Openid",
"subject": "Your Subject",
"body": "Your Body",
"description": "Your Description",
"failure_msg":null,
"extra": {
"send_name": "Send Name"
}
}
]
}
該類型的 Event 對象會在 red_envelope
對象紅包發送成功和接收成功后觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
red_envelope.sent | 紅包對象,紅包發送成功時觸發 |
red_envelope.received | 紅包對象,紅包接收成功時觸發 |
事件類型為 red_envelope.sent : { "id": "evt_5BpbV0tYK4ySvodDG2RT6XRq", "created": 1436855491, "type": "red_envelope.sent", "livemode": true, "object": "event", "data": { "object": { "id": "red_z1O8iLmXXXX5uPqLiDzLCavP", "object": "red_envelope", "created": 1436855474, "received": null, "refunded": null, "livemode": true, "status": "sent", "app": "app_1234567890abcDEF", "channel": "wx_pub", "order_no": "123456789", "transaction_no": "0010037269201507140154722852", "amount": 100, "amount_settle": 100, "currency": "cny", "recipient": "Openid", "subject": "Your Subject", "body": "Your Body", "description": "Your Description", "extra": { "nick_name": "Nick Name", "send_name": "Send Name" } } }, "pending_webhooks": 0, "request": "iar_zjLGC8zfLOS8WPS0WLi14ynD" } 事件類型為 red_envelope.received : { "id": "evt_hMGV2eR15fMupHUdDYibhLxe", "object": "event", "type": "red_envelope.received", "livemode": true, "created": 1436753800, "data": { "object": { "id": "red_4qLGO84GaXHOWTSO80mLO8i9", "object": "red_envelope", "created": 1436753573, "received": null, "refunded": null, "livemode": true, "status": "received", "app": "app_1234567890abcDEF", "channel": "wx_pub", "order_no": "123456789", "transaction_no": "0010037269201507130153706663", "amount": 100, "amount_settle": 100, "currency": "cny", "recipient": "Openid", "subject": "Your Subject", "body": "Your Body", "description": "Your Description", "extra": { "nick_name": "Nick Name", "send_name": "Send Name" } } }, "pending_webhooks": 0, "request": "iar_jf1iT0fT0a18v1u5qDvb1uDS" }
通過創建一個用戶對象,讓 Ping++ 連通你的系統中的用戶。可以通過用戶對象管理個人信息,查看余額、優惠券等相關信息。
在每個應用創建時,我們會為其分配一個初始用戶,id
為 “0”,表示該應用的系統用戶,除此之外,所有用戶都由你傳入的用戶 id
創建。
用戶分為 customer
類型和 business
類型,customer
類型可以通過用戶對象創建接口創建,也可以在使用其他帶有用戶 id
字段的模塊相關接口(如充值、優惠券)時由 Ping++ 自動創建并初始化; business
類型目前只能通過創建子商戶時創建,詳情請參考 商戶層級。
如果你需要使用訂單、余額、優惠券、商戶層級、分潤等模塊的相關功能時,你需要了解并使用用戶的相關接口。
屬性 | 描述 |
---|---|
id string | 用戶 ID ,64 位以內,首字母必須是英文、數字或者下劃線。 |
object string | 值為 "user"。 |
app string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
type string | 用戶類型,取值范圍:
customer
為個人用戶,
business
為企業用戶。 |
related_app string | 當
type
值為
business
時,該用戶關聯的 Ping++ 的
app
對象
id |
address string | 用戶地址。 |
available_coupons int | 可用優惠券數量。 |
avatar string | 頭像圖片地址。 |
available_balance int | 可用余額,可用于消費。 |
withdrawable_balance int | 可提現余額,可用于消費、提現、轉賬等。 |
created int | 創建時間,使用 unix 時間戳表示。 |
disabled boolean | 是否被禁用。禁用后,相關用戶的功能均不可使用。 |
email string | 郵箱地址。 |
gender string | 性別。
MALE
:男;
FEMALE
:女,為空時表示未填寫。 |
identified boolean | 是否經過實名認證。 |
livemode boolean | 是否處于 live 模式。 |
mobile string | 手機號碼。 |
name string | 用戶昵稱。 |
metadata hash | 詳見 元數據 。 |
settle_accounts hash | 用戶結算賬戶列表,請參考 用戶結算賬戶對象 。 |
{
"id": "test_user_003",
"object": "user",
"app": "app_1Gqj58ynP0mHeX1q",
"address": null,
"available_coupons": 0,
"avatar": null,
"available_balance": 0,
"withdrawable_balance": 0,
"created": 1470215837,
"disabled": false,
"email": null,
"gender": "MALE",
"identified": false,
"livemode": true,
"metadata": {},
"mobile": null,
"name": "name003",
"type": "customer",
"related_app": null,
"settle_accounts": []
}
你可以通過該接口創建一個 user
對象。使用該接口時必須確保用戶 id
未被使用。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
id required string | 用戶 ID ,64 位以內,首字母必須是英文、數字或者下劃線。 |
address optional string | 用戶地址。 |
avatar optional string | 頭像圖片地址。 |
email optional string | 郵箱地址。 |
gender optional string | 性別。MALE:男,FEMALE:女。 |
mobile optional string | 手機號碼。 |
name optional string | 用戶昵稱。 |
metadata optional hash | 詳見 元數據 。 |
返回
返回一個 user
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/users
curl https://api.pingxx.com/v1/apps/{APP_ID}/users \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"id": "test_user_003",
"address": null,
"avatar": null,
"email": null,
"gender": "MALE",
"metadata": {},
"mobile": null,
"name": "name003"
}'
{
"id": "test_user_003",
"object": "user",
"app": "app_1Gqj58ynP0mHeX1q",
"address": null,
"available_coupons": 0,
"avatar": null,
"available_balance": 0,
"withdrawable_balance": 0,
"created": 1470215837,
"disabled": false,
"email": null,
"gender": "MALE",
"identified": false,
"livemode": true,
"metadata": {},
"mobile": null,
"name": "name003",
"type": "customer",
"related_app": null,
"settle_accounts": []
}
通過 user
對象的 id
查詢一個已創建的 user
對象。傳入一個不存在 user
對象的 id
時,Ping++ 不會為此 id
自動創建 user
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | user
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 user
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/users/test_user_003 \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "test_user_003",
"object": "user",
"app": "app_1Gqj58ynP0mHeX1q",
"address": null,
"available_coupons": 0,
"avatar": null,
"available_balance": 0,
"withdrawable_balance": 0,
"created": 1470215837,
"disabled": false,
"email": null,
"gender": "MALE",
"identified": false,
"livemode": true,
"metadata": {},
"mobile": null,
"name": "name003",
"type": "customer",
"related_app": null,
"settle_accounts": []
}
通過 user
對象的 id
更新一個已創建的 user
對象。
你可以調用該接口更新 user
對象中的個人信息,或者你也可以禁用/啟用該用戶,當用戶被禁用后,相關的訂單支付、余額、優惠券等功能會受限制。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | user
對象的
id
,該參數僅需要填寫在請求地址內。 |
address optional string | 用戶地址。 |
avatar optional string | 頭像。 |
email optional string | 郵箱地址。 |
gender optional string | 性別。MALE:男,FEMALE:女。 |
mobile optional string | 手機號碼。 |
name optional string | 用戶昵稱。 |
metadata optional hash | 詳見 元數據 。 |
disabled optional bool | 是否禁用該商戶。該參數不能與其他參數同時使用。 |
返回
返回一個更新后的 user
對象,或者返回一個錯誤,詳見 錯誤。
PUT https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}
curl https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID} \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"address": null,
"avatar": null,
"email": null,
"gender": "MALE",
"metadata": {},
"mobile": null,
"name": "name003"
}'
{
"id": "test_user_003",
"object": "user",
"app": "app_1Gqj58ynP0mHeX1q",
"address": null,
"available_coupons": 0,
"avatar": null,
"available_balance": 0,
"withdrawable_balance": 0,
"created": 1470215837,
"disabled": false,
"email": null,
"gender": "MALE",
"identified": false,
"livemode": true,
"metadata": {},
"mobile": null,
"name": "name003",
"type": "customer",
"related_app": null,
"settle_accounts": []
}
你可以調用此接口查詢 user
用戶列表。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
page optional int | 頁碼,默認值為"1",取值范圍(1~100000000)。 |
per_page optional int | 每頁數量,默認值為"20",取值范圍(1~100)。 |
created [ gt ] optional timestamp | 大于
user
對象的創建時間,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 大于或等于
user
對象的創建時間,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 小于
user
對象的創建時間,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 小于或等于
user
對象的創建時間,用 Unix 時間戳表示。 |
disabled optional boolean | 是否禁用。使用該參數時,不能同時使用其他參數。 |
identified optional boolean | 是否經過實名認證。 |
type optional string | 用戶類型,取值范圍:
customer
為個人用戶,
business
為企業用戶。 |
返回
返回一個 user
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/users
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/users \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/app_4OOi9SGuD88GGqbL/users", "has_more": true, "data": [ { "id": "test_user_031", "object": "user", "app": "app_4OOi9SGuD88GGqbL", "address": null, "available_balance": 0, "available_coupons": 0, "avatar": null, "withdrawable_balance": 0, "created": 1488332846, "disabled": false, "email": null, "gender": null, "identified": false, "livemode": true, "metadata": {}, "mobile": null, "name": null, "type": "customer", "related_app": "app_q5eff1jHKqXP9qvr", "settle_accounts": [] }, {...}, {...} ] }
可以在 user
對象上綁定一個或多個用戶結算賬戶,用戶結算賬戶用于提現或者接收分潤。
屬性 | 描述 |
---|---|
id string | 用戶結算賬戶對象 ID。 |
object string | 值為 "settle_account"。 |
created timestamp | 創建時的 Unix 時間戳。 |
channel string | 結算賬號渠道名稱,目前支持:
alipay
(支付寶)、
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
bank_account
(銀行卡)。 |
recipient object | 脫敏的結算賬號接收者信息,詳情參見請求參數 recipient 部分。 |
{
"id": "320217022818035400000601",
"object": "settle_account",
"created": 1488276234,
"livemode": true,
"channel": "bank_account",
"recipient": {
"open_bank_code": "0102",
"account": "622262***2145",
"name": "***哥"
}
}
你可以為一個用戶創建一個用戶結算賬戶,每個用戶在一個渠道下最多支持創建一個用戶結算賬戶。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | 用戶 ID ,64 位以內,首字母必須是英文、數字或者下劃線,該參數僅需要填寫在請求地址內。 |
channel required string | 結算賬號渠道名稱,目前支持:
alipay
(支付寶)、
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
bank_account
(銀行卡)。 |
recipient required object | 結算賬號接收者信息,見下方各渠道 recipient 參數說明 。 |
recipient 參數說明
alipay | 描述 |
---|---|
account required string | 接收者支付寶賬號。 |
name required string | 接收者姓名。 |
type required string | 轉賬類型,分為兩種:
b2c
:企業向個人付款,
b2b
:企業向企業付款。不傳時默認為
b2c
類型。 |
account_type optional string | 收款方賬戶類型。默認值:"ALIPAY_LOGONID"。ALIPAY_USERID:支付寶賬號對應的支付寶唯一用戶號,以 2088 開頭的 16 位純數字組成;ALIPAY_LOGONID:支付寶登錄號,支持郵箱和手機號格式。 |
wx/wx_pub/wx_lite |
描述 |
---|---|
account required string | 接收者
open_id
。點此參考
如何獲取
open_id
。 |
name optional string | 收款人姓名。當該參數為空,則不校驗收款人姓名。 |
force_check optional boolean | 是否強制校驗收款人姓名。僅當 name 參數不為空時該參數生效。 |
type optional string | 轉賬類型。僅支持
b2c
:企業向個人付款。默認值為
b2c
。 |
bank_account | 描述 |
---|---|
account required string | 接收者銀行賬號/卡號。 |
name required string | 接收者銀行開戶名。 |
type required string | 轉賬類型。
b2c
:企業向個人付款,
b2b
:企業向企業付款。 |
open_bank_code required string | 開戶銀行編號(針對 allinpay / unionpay 渠道使用),請根據渠道的不同參考 銀聯電子代付銀行編號說明 或 通聯代付銀行編號說明 。 |
open_bank optional string | 開戶銀行名稱(針對 unionpay 渠道使用)。 |
card_type optional int | 銀行卡號類型,0:銀行卡;1:存折;2:信用卡;3:準貸記卡;4:其他。(jdpay 不支持 1:存折) |
sub_bank optional string | 開戶支行名稱,1~80位(針對 allinpay / unionpay 渠道使用)。若使用 allinpay 渠道且 type 為 b2b,則此參數必填,詳情請下載 支付行號 。 |
sub_bank_code optional string | 支付行號(僅針對 allinpay 渠道使用),1~12位,且在 type 為 b2b 時此參數必填,詳情請下載 支付行號 。 |
prov optional string | 開戶銀行所在省份,(針對 allinpay / unionpay 渠道使用)。若使用 allinpay 渠道且 type 為 b2b,則此參數必填,不帶 “省” 或 “自治區”,需填寫成:廣東、廣西、內蒙古等,詳情請參考 中國郵政區號表 內的「省洲名稱」列的內容填寫。 |
city optional string | 開戶銀行所在城市,(針對 allinpay / unionpay 渠道使用)。若使用 allinpay 渠道且 type 為 b2b,則此參數必填,不帶 “市”,需填寫成:廣州、南寧等。如果是直轄市,則填區,如北京(市)朝陽(區),詳情請參考 中國郵政區號表 內的「地區名稱」列的內容填寫。 |
返回
返回一個 settle_account
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/settle_accounts
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/users/user_test_003/settle_accounts \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"channel": "alipay",
"recipient": {
"account": "[email protected]",
"name": "李雷",
"type": "b2c"
}
}'
{
"id": "320217022818035400000601",
"object": "settle_account",
"created": 1488276234,
"livemode": true,
"channel": "alipay",
"recipient": {
"account": "a***@gmail.com",
"name": "***雷",
"type": "b2c"
}
}
你可以使用此接口來查詢對應的用戶結算賬戶對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | 用戶 ID ,64 位以內,首字母必須是英文、數字或者下劃線,該參數僅需要填寫在請求地址內。 |
SETTLE_ACCOUNT_ID required string | 用戶結算賬戶對象 ID,該參數僅需要填寫在請求地址內。 |
返回
返回一個 settle_account
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/settle_accounts/{SETTLE_ACCOUNT_ID}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/users/test_user_003/settle_accounts/320217022818035400000601 \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "320217022818035400000601",
"object": "settle_account",
"created": 1488276234,
"livemode": true,
"channel": "unionpay",
"recipient": {
"open_bank_code": "0102",
"account": "622262***2145",
"name": "***哥"
}
}
可以調用此接口,將綁定的用戶結算賬戶刪除。 如果你需要更新用戶結算賬戶的信息,你可以先通過該接口刪除,然后再重新創建。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | 用戶 ID ,64 位以內,首字母必須是英文、數字或者下劃線,該參數僅需要填寫在請求地址內。 |
SETTLE_ACCOUNT_ID required string | 用戶結算賬戶對象 ID,該參數僅需要填寫在請求地址內。 |
返回
返回一個 JSON 格式的響應對象,或者返回一個錯誤,詳見 錯誤。
DELETE https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/settle_accounts/{SETTLE_ACCOUNT_ID}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/users/test_user_001/settle_accounts/320217022818035400000601 \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"deleted": true,
"id": "320217022818035400000601"
}
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | 用戶 ID ,64 位以內,首字母必須是英文、數字或者下劃線,該參數僅需要填寫在請求地址內。 |
page optional int | 頁碼,默認值為 "1" ,取值范圍(1~100000000)。 |
per_page optional int | 每頁數量,默認值為 "10",取值范圍(1~100)。 |
created [ gt ] optional timestamp | 大于
settle_account
對象的創建時間,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 大于或等于
settle_account
對象的創建時間,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 小于
settle_account
對象的創建時間,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 小于或等于
settle_account
對象的創建時間,用 Unix 時間戳表示。 |
返回
返回一個 settle_account
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/settle_accounts
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/users/test_user_003/settle_accounts?page=1&per_page=15 \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/app_LibTW1n1SOq9Pin1/users/test_user_003/settle_accounts", "has_more": false, "data": [ { "id": "320217022818035400000601", "object": "settle_account", "created": 1488276234, "livemode": true, "channel": "bank_account", "recipient": { "open_bank_code": "0102", "account": "622262***2145", "name": "***哥" }, {...}, {...} ] }
你可以通過創建 sub_app
對象滿足業務模式中包含多層級的子商戶應用,創建時使用的 app
對象 id
稱之為平臺。子商戶和平臺一樣,也會生成一個獨立的 Ping++ 賬號,其中 sub_app
對象的 id
則是該賬戶下的 app
對象的 id
。
如果子商戶有登錄管理平臺的需求,可以在 Dashboard 上為子商戶填寫郵箱作為登錄賬號。
屬性 | 描述 |
---|---|
id string | 子商戶應用對象 ID,由 Ping++ 生成。 |
object string | 值為 "sub_app"。 |
created timestamp | 創建時的 Unix 時間戳。 |
display_name string | 子商戶應用名稱,2~50 位。 |
account string | 子商戶應用所屬的 account。 |
description string | 附加說明,2~50 位。 |
metadata hash | 詳見 元數據 。 |
available_methods list | 可用的支付渠道列表。目前子商戶不支持余額
balance
收付款。 |
user expandable string | 子商戶對應在平臺下的
user
對象
id
,expandable 可展開。 |
level int | 當前層級,值為 1~5。 |
parent_app string | 父級商戶的應用對象的
id
。 |
{
"id": "app_q5eff1jHKqXP9qvr",
"object": "sub_app",
"created": 1488332846,
"display_name": "sub_app_display_name",
"account": "acct_14yPiHyrb1GGub1m",
"description": "Your description",
"metadata": {
"a": "b",
"c": "d"
},
"available_methods": {},
"user": "test_user_031"
}
調用該接口創建一個 sub_app
對象。
每個子商戶都有唯一一個父級商戶的應用 id
,該 id
可以是平臺也可以是其他子商戶,所有層級的子商戶都只能通過平臺查看和管理。
子商戶創建時需要填寫一個 user
對象 id
,該 id
是平臺應用下的一個用戶。該用戶用于接收分潤以及其他用戶相關的功能。
請求參數 | 描述 |
---|---|
APP_ID required string | 平臺應用對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
display_name required string | 應用名稱,2~50 位。 |
user expandable required string | 子商戶對應在平臺下的
user
對象
id
,expandable 可展開。 |
parent_app optional string | 父級商戶的
sub_app
對象的
id
,必須為平臺或者平臺下其他的子商戶,默認值為平臺。 |
metadata optional hash | 詳見 元數據 。 |
description optional string | 附加說明,2~50 位。 |
返回
返回一個 sub_app
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"display_name": "sub_app_display_name",
"user": "test_user_031",
"metadata": {
"a": "b",
"c": "d"
},
"description": "Your description",
"parent_app": "app_rDyHSCy14aL8m9ev"
}'
{
"id": "app_q5eff1jHKqXP9qvr",
"object": "sub_app",
"created": 1488332846,
"display_name": "sub_app_display_name",
"account": "acct_14yPiHyrb1GGub1m",
"description": "Your description",
"metadata": {
"a": "b",
"c": "d"
},
"available_methods": {},
"user": "test_user_031",
"parent_app": "app_rDyHSCy14aL8m9ev",
"level" : 2
}
通過 sub_app
對象的 id
查詢一個已創建的 sub_app
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 平臺應用對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
SUB_APP_ID required string | 子商戶應用對應
sub_app
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 sub_app
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps/{SUB_APP_ID}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "app_GaDuf99evvfTi5Wb",
"object": "sub_app",
"created": 1488332846,
"display_name": "sub_app_display_name",
"account": "acct_14yPiHyrb1GGub1m",
"description": "Your description",
"metadata": {
"a": "b",
"c": "d"
},
"available_methods": {},
"user": "test_user_031",
"parent_app": "app_rDyHSCy14aL8m9ev",
"level" : 2
}
通過 sub_app
對象的 id
更新一個已創建的 sub_app
對象的信息。
請求參數 | 描述 |
---|---|
APP_ID required string | 平臺應用對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
SUB_APP_ID required string | 子商戶應用對應
sub_app
對象的
id
,該參數僅需要填寫在請求地址內。 |
display_name optional string | 應用名稱,2~50 位。 |
metadata optional hash | 詳見 元數據 。 |
description optional string | 附加說明,2~50 位。 |
parent_app optional string | 父商戶應用 ID,必須為平臺或者平臺下其他的子商戶。 |
返回
返回一個更新后的 sub_app
對象,或者返回一個錯誤,詳見 錯誤。
PUT https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps/{SUB_APP_ID}
curl https://api.pingxx.com/v1/apps/app_4OOi9SGuD88GGqbL/sub_apps/app_q5eff1jHKqXP9qvr \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"display_name": "sub_app_name2",
"metadata": {
"key": "value"
},
"description": "Your description"
}'
{
"id": "app_q5eff1jHKqXP9qvr",
"object": "sub_app",
"created": 1488332846,
"display_name": "sub_app_name2",
"account": "acct_14yPiHyrb1GGub1m",
"description": "Your description",
"metadata": {
"key": "value"
},
"available_methods": {},
"user": "test_user_031",
"parent_app": "app_rDyHSCy14aL8m9ev",
"level" : 2
}
調用該接口刪除一個 sub_app
對象。刪除后,該應用關聯平臺下的 user
對象 id
會被禁用。
請求參數 | 描述 |
---|---|
APP_ID required string | 平臺應用對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
SUB_APP_ID required string | 子商戶應用對應
sub_app
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 JSON 格式的刪除信息,或者返回一個錯誤,詳見 錯誤。
DELETE https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps/{SUB_APP_ID}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_q5eff1jHKqXP9qvr \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"deleted": true,
"id": "SUB_APP_ID"
}
調用該接口查詢 sub_app
對象列表。
請求參數 | 描述 |
---|---|
APP_ID required string | 平臺應用對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
level optional int | 當前層級,值為 1~5。 |
parent_app optional string | 父商戶應用 ID,必須為平臺或者平臺下其他的子商戶。 |
page optional int | 頁碼,默認值為 "1",取值范圍(1~100000000)。 |
per_page optional int | 每頁數量,默認值為"20",取值范圍(1~100)。 |
created [ gt ] optional timestamp | 大于對象的創建時間,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 大于或等于對象的創建時間,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 小于對象的創建時間,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 小于或等于對象的創建時間,用 Unix 時間戳表示。 |
返回
返回一個 sub_app
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/app_4OOi9SGuD88GGqbL/sub_apps", "has_more": false, "data": [ { "id": "app_q5eff1jHKqXP9qvr", "object": "sub_app", "created": 1488332846, "display_name": "sub_app_name2", "account": "acct_14yPiHyrb1GGub1m", "description": "Your description", "metadata": { "key": "value" }, "available_methods": {}, "user": "test_user_031", "parent_app": "app_rDyHSCy14aL8m9ev", "level": 2 }, {...}, {...} ] }
屬性 | 描述 |
---|---|
object string | 值為 "channel"。 |
created timestamp | 創建時的 Unix 時間戳。 |
channel string | 第三方支付渠道屬性。支付使用的渠道名稱請參考
支付渠道屬性值
;企業付款使用的渠道名稱:
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯電子代付)、
allinpay
(通聯代付)和
jdpay
(京東代付)。 |
params hash | 子商戶應用渠道參數列表,參見 子商戶應用渠道參數說明 。 |
banned bool | 是否禁用,禁用后該渠道不會出現在可用支付渠道列表中。 |
banned_msg string | 禁用信息。 |
description string | 描述。 |
{
"object": "channel",
"created": 1486198795,
"channel": "alipay",
"params": [
{
"channel": "alipay",
"fee_rate": "1",
"alipay_app_auth_token": "201510BBaabdb44d8fd04607abf8d5931ec75D84",
"alipay_user_id": "2088011177545623",
"alipay_auth_app_id": "2013111800001989",
"alipay_expires_in": "31536000",
"alipay_re_expires_in": "32140800",
"alipay_app_refresh_token": "201510BB09dece3ea7654531b66bf9f97cdceE67",
"auth_type": "alipay_token"
}
],
"banned": false,
"ban_msg": "werwerwer",
"description": ""
}
請求參數 | 描述 |
---|---|
APP_ID required string | 平臺應用對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
SUB_APP_ID required string | 子商戶應用
id
,該參數僅需要填寫在請求地址內。 |
channel required string | 第三方支付渠道屬性。支付使用的渠道名稱請參考
支付渠道屬性值
;企業付款使用的渠道名稱:
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯電子代付)、
allinpay
(通聯代付)和
jdpay
(京東代付)。 |
params required hash | 子商戶應用渠道參數列表,見 子商戶應用渠道參數說明 。 |
banned optional boolean | 是否禁用,禁用后該渠道不會出現在可用支付渠道列表中。 |
banned_msg optional string | 禁用信息。當 banned 為 true 時必填;為 false 時選填,可傳空字符串將該字段置為空。 |
description optional string | 描述。 |
返回
返回一個 channel
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps/{SUB_APP_ID}/channels
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "alipay",
"params": {
"alipay_pid": "2088111111111111",
"alipay_app_id": "2016666666666666",
"alipay_account": "[email protected]",
"alipay_security_key": "a5srakrbci3nf1pracb52xcs9xlhu8gu",
"alipay_mer_app_private_key": "-----BEGIN PRIVATE KEY-----
your private key
-----END PRIVATE KEY-----",
"alipay_app_public_key": "-----BEGIN PUBLIC KEY-----
your public key
-----END PUBLIC KEY-----",
"alipay_mer_app_private_key_rsa2": null,
"alipay_app_public_key_rsa2": null,
"alipay_version": 1,
"alipay_refund_nopwd": true
},
"banned": false,
"banned_msg": "your banned_msg",
"description": "Your alipay description"
}'
{ "object": "channel", "channel": "alipay", "banned": false, "banned_msg": "your banned_msg", "created": 1494854723, "description": "Your alipay description", "params": { "alipay_pid": "2088111111111111", "alipay_app_id": "2016666666666666", "alipay_account": "[email protected]", "alipay_security_key": "a5srakrbci3nf1pracb52xcs9xlhu8gu", "alipay_mer_app_private_key": "-----BEGIN PRIVATE KEY----- your private key -----END PRIVATE KEY-----", "alipay_app_public_key": "-----BEGIN PUBLIC KEY----- your public key -----END PUBLIC KEY-----", "alipay_mer_app_private_key_rsa2": null, "alipay_app_public_key_rsa2": null, "alipay_version": 1, "alipay_refund_nopwd": true } }
請求參數 | 描述 |
---|---|
APP_ID required string | 平臺應用對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
SUB_APP_ID required string | 子商戶應用
id
,該參數僅需要填寫在請求地址內。 |
CHANNEL required string | 支付渠道名稱,該參數僅需要填寫在請求地址內。 |
返回
返回一個 channel
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps/{SUB_APP_ID}/channels/{CHANNEL}
curl https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps/{SUB_APP_ID}/channels/{CHANNEL} \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"object": "channel",
"created": 1486198795,
"channel": "alipay",
"params": {
"fee_rate": 60,
"alipay_app_auth_token": "201510BBaabdb44d8fd04607abf8d5931ec75D84",
"alipay_user_id": "2088011177545623",
"alipay_auth_app_id": "2013111800001989",
"alipay_expires_in": "31536000",
"alipay_re_expires_in": "32140800",
"alipay_app_refresh_token": "201510BB09dece3ea7654531b66bf9f97cdceE67",
"auth_type": "alipay_token"
},
"banned": false,
"banned_msg": null,
"description": "description"
}
請求參數 | 描述 |
---|---|
APP_ID required string | 平臺應用對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
SUB_APP_ID required string | 子商戶應用
id
,該參數僅需要填寫在請求地址內。 |
CHANNEL required string | 支付渠道名稱,該參數僅需要填寫在請求地址內。 |
params optional hash | 子商戶應用渠道參數列表,見 子商戶應用渠道參數說明 。 |
banned optional boolean | 是否禁用,禁用后該渠道不會出現在可用支付渠道列表中。 |
banned_msg optional string | 1-255 位,禁用信息,當
banned
為
true
時可以填寫。 |
description optional string | 1-255 位,描述。 |
返回
返回一個 channel
對象,或者返回一個錯誤,詳見 錯誤。
PUT https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps/{SUB_APP_ID}/channels/{CHANNEL}
curl https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps/{SUB_APP_ID}/channels/{CHANNEL} \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:\
-d'{
"params": {
"fee_rate": 60,
"alipay_app_auth_token": "201510BBaabdb44d8fd04607abf8d5931ec75D84",
"alipay_user_id": "2088011177545623",
"alipay_auth_app_id": "2013111800001989",
"alipay_expires_in": "31536000",
"alipay_re_expires_in": "32140800",
"alipay_app_refresh_token": "201510BB09dece3ea7654531b66bf9f97cdceE67"
},
"banned": false,
"banned_msg": null,
"description": "description"
}'
{
"object": "channel",
"created": 1486198795,
"channel": "alipay",
"params": {
"fee_rate": 60,
"alipay_app_auth_token": "201510BBaabdb44d8fd04607abf8d5931ec75D84",
"alipay_user_id": "2088011177545623",
"alipay_auth_app_id": "2013111800001989",
"alipay_expires_in": "31536000",
"alipay_re_expires_in": "32140800",
"alipay_app_refresh_token": "201510BB09dece3ea7654531b66bf9f97cdceE67"
},
"banned": false,
"banned_msg": null,
"description": "description"
}
請求參數 | 描述 |
---|---|
APP_ID required string | 平臺應用對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
SUB_APP_ID required string | 子商戶應用
id
,該參數僅需要填寫在請求地址內。 |
CHANNEL required string | 支付渠道名稱,該參數僅需要填寫在請求地址內。 |
返回
返回一個 JSON 格式的刪除信息,或者返回一個錯誤,詳見 錯誤。
DELETE https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps/{SUB_APP_ID}/channels/{CHANNEL}
curl https://api.pingxx.com/v1/apps/{APP_ID}/sub_apps/{SUB_APP_ID}/channels/{CHANNEL} \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"deleted": true,
"channel": "CHANNEL"
}
通過創建 recharge
對象,為用戶的余額進行充值。充值完成后可以調用 user
對象查詢接口,查詢用戶的余額。
屬性 | 描述 |
---|---|
id string | 充值對象 ID,由 Ping++ 生成。 |
object string | 值為 "Recharge"。 |
app string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
livemode boolean | 是否是 live 模式。 |
amount int | 用戶實際到賬余額,單位為分(包含贈送金額和扣除用戶手續費,例如充 100 送 20,則該值是 120;充 100 收 5 元用戶手續費,則該值是 95)。 |
succeeded boolean | 是否已充值成功。 |
time_succeeded timestamp | 充值成功時間,用 Unix 時間戳表示。 |
refunded boolean | 是否存在退款(跟是否退款成功沒有關系)。 |
user string | 充值目標
user
對象的
id
,64 位以內。 |
from_user string | 充值來源
user
對象的
id
,64 位以內。 |
user_fee int | 收取的用戶手續費,單位為分,取值范圍 0~1000000000。 |
charge object | 支付使用的
charge
對象。 |
balance_bonus object | 包含的
balance_bonus
對象。 |
refunds list | 包含的
refund
對象列表。 |
balance_transaction string | 關聯的
balance_transaction
對象的
id
。 |
description string | 附加說明,最多 255 個 Unicode 字符。 |
metadata hash | 詳見 元數據 。 |
{
"id": "2001706060000002372",
"object": "recharge",
"app": "app_1Gqj58ynP0mHeX1q",
"created": "1496740128",
"livemode": false,
"amount": 1000,
"succeeded": false,
"time_succeeded": null,
"refunded": false,
"user": "test_user_02",
"from_user": "test_user_01",
"user_fee": 100,
"charge": {
"id": "ch_SejbHOrzbjvPunjHmD08SCi9",
"object": "charge",
"created": 1496740128,
"livemode": false,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "upacp",
"order_no": "20161000167",
"client_ip": "127.0.0.1",
"amount": 10000,
"amount_settle": 10000,
"currency": "cny",
"subject": "測試訂單007測試訂單007&",
"body": "訂單內容007",
"extra": {},
"time_paid": null,
"time_expire": 1496826528,
"time_settle": null,
"transaction_no": null,
"refunds": {
"object": "list",
"url": "/v1/charges/ch_SejbHOrzbjvPunjHmD08SCi9/refunds",
"has_more": false,
"data": []
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {
"object": "credential",
"upacp": {
"tn": "201409161028470000000",
"mode": "01"
}
},
"description": null
},
"balance_bonus": {},
"refunds": {},
"balance_transaction": "",
"description": "",
"metadata": {}
}
發起一次充值請求時需要創建一個新的 recharge
對象,獲取一個可用的 charge
對象用于客戶端向第三方渠道發起支付請求。如果使用測試模式的 API Key,則不會發生真實交易。當充值成功后,Ping++ 會發送 Webhooks 通知。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
user required string | 充值目標
user
對象的
id
,64 位以內。 |
charge [ amount ] required integer | 支付金額,單位為分,取值范圍 0~1000000000。 |
charge [ channel ] required string | 支付使用的第三方支付渠道,詳情參考
支付渠道屬性值
。除此之外,還支持自定義渠道
custom
,該渠道不需要真實支付,僅對用戶 "0" 有效。 |
charge [ order_no ] required string | 商戶訂單號,適配每個渠道對此參數的要求,必須在商戶的系統內唯一。長度限制在 8~20 位。 |
charge [ subject ] required string | 標題,該參數最長為 32 個 Unicode 字符,銀聯全渠道限制在 32 個字節。 |
charge [ body ] required string | 描述信息,該參數最長為 128 個 Unicode 字符,
yeepay_wap
對于該參數長度限制為 100 個 Unicode 字符。 |
charge [ time_expire ] optional timestamp | 支付失效時間,用 Unix 時間戳表示。時間范圍在訂單創建后的 1 分鐘到 15 天,默認為 1 天,創建時間以 Ping++ 服務器時間為準。微信對該參數的時間范圍在訂單創建后的 1 分鐘到 7 天,默認為 2 小時;銀聯對該參數的有效值限制為 1 小時內。 |
charge [ client_ip ] optional string | 客戶端的 IP,IPV4,默認 127.0.0.1。 |
charge [ extra ] optional hash | 特定渠道發起交易時需要的額外參數,以及部分渠道支付成功返回的額外參數。 |
user_fee optional integer | 充值收取的用戶手續費,單位為分,不得大于
charge[amount]
,不可和
balance_bonus[amount]
同時使用,默認 0。 |
balance_bonus [ amount ] optional integer | 充值贈送的余額,單位為分,不可和
user_fee
同時傳,默認 0。 |
from_user optional string | 充值來源
user
對象的
id
,默認和
user
相同,即給自己充值。 |
description optional string | 附加說明,最多 255 個 Unicode 字符。 |
metadata optional hash | 詳見 元數據 。 |
返回
返回一個 recharge
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/recharges
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/recharges \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"user": "test_user_02",
"user_fee": 100,
"from_user": "test_user_01",
"charge": {
"amount":1000,
"channel":"upacp",
"time_expire": 1496826528,
"order_no":"20161000167",
"subject": "測試訂單007測試訂單007&",
"body": "訂單內容007",
"client_ip":"127.0.0.1",
"extra":{}
},
"client_ip": "127.0.0.1",
"description": "Your description"
}'
{
"id": "2001706060000002372",
"object": "recharge",
"app": "app_1Gqj58ynP0mHeX1q",
"created": "1496740128",
"livemode": false,
"amount": 1000,
"succeeded": false,
"time_succeeded": null,
"refunded": false,
"user": "test_user_02",
"from_user": "test_user_01",
"user_fee": 100,
"charge": {
"id": "ch_SejbHOrzbjvPunjHmD08SCi9",
"object": "charge",
"created": 1496740128,
"livemode": false,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "upacp",
"order_no": "20161000167",
"client_ip": "127.0.0.1",
"amount": 10000,
"amount_settle": 10000,
"currency": "cny",
"subject": "測試訂單007測試訂單007&",
"body": "訂單內容007",
"extra": {},
"time_paid": null,
"time_expire": 1496826528,
"time_settle": null,
"transaction_no": null,
"refunds": {
"object": "list",
"url": "/v1/charges/ch_SejbHOrzbjvPunjHmD08SCi9/refunds",
"has_more": false,
"data": []
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {
"object": "credential",
"upacp": {
"tn": "201409161028470000000",
"mode": "01"
}
},
"description": null
},
"balance_bonus": {},
"refunds": {},
"balance_transaction": "",
"description": "",
"metadata": {}
}
通過 recharge
對象的 id 查詢一個已創建的 recharge
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
RECHARGE_ID required string | recharge
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 recharge
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/recharges/{RECHARGE_ID}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/recharges/2001706060000002372 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "2001706060000002372",
"object": "recharge",
"app": "app_1Gqj58ynP0mHeX1q",
"created": "1496740128",
"livemode": false,
"amount": 1000,
"succeeded": false,
"time_succeeded": null,
"refunded": false,
"user": "test_user_02",
"from_user": "test_user_01",
"user_fee": 100,
"charge": {
"id": "ch_SejbHOrzbjvPunjHmD08SCi9",
"object": "charge",
"created": 1496740128,
"livemode": false,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "upacp",
"order_no": "20161000167",
"client_ip": "127.0.0.1",
"amount": 10000,
"amount_settle": 10000,
"currency": "cny",
"subject": "測試訂單007測試訂單007&",
"body": "訂單內容007",
"extra": {},
"time_paid": null,
"time_expire": 1496826528,
"time_settle": null,
"transaction_no": null,
"refunds": {
"object": "list",
"url": "/v1/charges/ch_SejbHOrzbjvPunjHmD08SCi9/refunds",
"has_more": false,
"data": []
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {
"object": "credential",
"upacp": {
"tn": "201409161028470000000",
"mode": "01"
}
},
"description": null
},
"balance_bonus": {},
"refunds": {},
"balance_transaction": "",
"description": "",
"metadata": {}
}
返回之前創建過 recharge
對象的一個列表。列表是按創建時間進行排序,總是將最新的 recharge
對象顯示在最前。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
user optional string | 充值目標
user
對象的
id
。 |
from_user optional string | 充值來源
user
對象的
id
。 |
succeeded boolean string | 是否已充值成功。 |
refunded boolean string | 是否存在退款(跟是否退款成功沒有關系)。 |
charge [ channel ] optional string | 充值使用的支付渠道。 |
charge [ order_no ] optional string | 充值使用的商戶訂單號。 |
page optional integer | 頁碼,默認值為 "1",取值范圍 1~100000000。 |
per_page optional integer | 每頁數量,默認值為 "20",取值范圍 1~100。 |
created [ gt ] optional integer | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional integer | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional integer | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional integer | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 recharge
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/recharges
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/recharges \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/app_1Gqj58ynP0mHeX1q/recharges", "has_more": true, "data": [ { "id": "2001706060000002372", "object": "recharge", "app": "app_1Gqj58ynP0mHeX1q", "created": "1496740128", "livemode": false, "amount": 1000, "succeeded": false, "time_succeeded": null, "refunded": false, "user": "test_user_02", "from_user": "test_user_01", "user_fee": 100, "charge": { "id": "ch_SejbHOrzbjvPunjHmD08SCi9", "object": "charge", "created": 1496740128, "livemode": false, "paid": false, "refunded": false, "reversed": false, "app": "app_1Gqj58ynP0mHeX1q", "channel": "upacp", "order_no": "20161000167", "client_ip": "127.0.0.1", "amount": 10000, "amount_settle": 10000, "currency": "cny", "subject": "測試訂單007測試訂單007&", "body": "訂單內容007", "extra": {}, "time_paid": null, "time_expire": 1496826528, "time_settle": null, "transaction_no": null, "refunds": { "object": "list", "url": "/v1/charges/ch_SejbHOrzbjvPunjHmD08SCi9/refunds", "has_more": false, "data": [] }, "amount_refunded": 0, "failure_code": null, "failure_msg": null, "metadata": {}, "credential": { "object": "credential", "upacp": { "tn": "201409161028470000000", "mode": "01" } }, "description": null }, "balance_bonus": {}, "refunds": {}, "balance_transaction": "", "description": "", "metadata": {} }, {...}, {...} ] }
該類型的 Event 對象會在 recharge
對象充值成功后觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL 。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
recharge.succeeded | 充值成功后觸發。 |
charge.succeeded | 充值成功后觸發。 |
屬性參考 Refund 退款。
{
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 9,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Refund Description",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425284"
}
通過發起一次充值退款請求創建一個新的 refund
對象,只能對已經充值成功的 recharge
對象發起全額退款。當退款成功后,會發送 Webhooks 通知。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
RECHARGE_ID required string | recharge
對象的
id
,該參數僅需要填寫在請求地址內。 |
description required string | 退款詳情,最多 255 個 Unicode 字符。針對
cmb_wallet
&
cmb_pc_qr
渠道最多支持 99 字節;針對
jdpay_wap
渠道最多支持 128 字節。 |
funding_source optional string | 微信及 QQ 類退款資金來源。取值范圍:
unsettled_funds
:使用未結算資金退款;
recharge_funds
:微信-使用可用余額退款,QQ-使用可用現金賬戶資金退款。注:默認值
unsettled_funds
,該參數對于微信渠道的退款來說僅適用于微信老資金流商戶使用,包括
wx
、
wx_pub
、
wx_pub_qr
、
wx_lite
、
wx_wap
、
wx_pub_scan
六個渠道;新資金流退款資金默認從基本賬戶中扣除。該參數僅在請求退款,傳入該字段時返回。 |
metadata optional hash | 詳見 元數據 。 |
返回
返回一個 refund
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/recharges/{RECHARGE_ID}/refunds
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/recharges/2001706060000002372/refunds \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d {
"description": "reharge refunds"
}
{
"id": "re_vXr14Se1GOGKyjzj5KPKizv9",
"object": "refund",
"order_no": "20161000167",
"amount": 10000,
"created": 1496743652,
"succeed": false,
"status": "pending",
"time_succeed": null,
"description": "reharge refunds",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_SejbHOrzbjvPunjHmD08SCi9",
"charge_order_no": "20161000167",
"transaction_no": null,
"extra": {}
}
通過充值 refund
對象的 id
查詢一個已創建的充值 refund
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
RECHARGE_ID required string | recharge
對象的
id
,該參數僅需要填寫在請求地址內。 |
REFUND_ID required string | refund
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 refund
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/recharges/{RECHARGE_ID}/refunds/{REFUND_ID}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/recharges/2001706060000002372/refunds/re_vXr14Se1GOGKyjzj5KPKizv9 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "re_vXr14Se1GOGKyjzj5KPKizv9",
"object": "refund",
"order_no": "20161000167",
"amount": 10000,
"created": 1496743652,
"succeed": false,
"status": "pending",
"time_succeed": null,
"description": "reharge refunds",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_SejbHOrzbjvPunjHmD08SCi9",
"charge_order_no": "20161000167",
"transaction_no": null,
"extra": {}
}
返回之前創建 recharge
對象的一個 refund
對象列表。列表是按創建時間進行排序,總是將最新的 refund
對象顯示在最前。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
RECHARGE_ID required string | recharge
對象的
id
,該參數僅需要填寫在請求地址內。 |
page optional int | 頁碼,默認值為 "1",取值范圍(1~100000000)。 |
per_page optional int | 每頁數量,默認值為 "10",取值范圍(1~100)。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 refund
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/recharges/{RECHARGE_ID}/refunds
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/recharges/2001706060000002372/refunds \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"object": "list",
"url": "/v1/apps/app_1Gqj58ynP0mHeX1q/recharges/2001706060000002372/refunds",
"has_more": false,
"data": [
{
"id": "re_vXr14Se1GOGKyjzj5KPKizv9",
"object": "refund",
"order_no": "20161000167",
"amount": 10000,
"created": 1496743652,
"succeed": false,
"status": "pending",
"time_succeed": null,
"description": "reharge refunds",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_SejbHOrzbjvPunjHmD08SCi9",
"charge_order_no": "20161000167",
"transaction_no": null,
"extra": {}
}
]
}
該類型的 Event 對象會在 refund
對象充值退款成功后觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL 。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
recharge.refund.succeeded | 退款成功后觸發。 |
refund.succeeded | 退款成功后觸發。 |
用戶發起提現申請時,你可以請求一個 withdrawal
對象,之后你可以對該筆提現進行審核,發起提現確認或提現取消。注:微信服務商模式商戶暫不支持提現。
參數 | 描述 |
---|---|
id string | 提現對象 ID,由 Ping++ 生成。 |
object string | 值為 "withdrawal"。 |
app string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
amount int | 提現扣除的余額,單位為分。 |
asset_transaction string | 關聯的
asset_transaction
對象的
id
。 |
balance_transaction string | 關聯的
balance_transaction
對象的
id
。 |
channel string | 提現使用的付款渠道:
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯)、
allinpay
(通聯)和
jdpay
(京東)。此外,還支持使用自定義渠道
custom
,該渠道不需要真實付款,并在確認提現時同步返回成功結果。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
description string | 附加說明,最多 60 個 Unicode 字符。 |
extra hash | 附加參數,提現付款的相關信息。 |
failure_msg string | 錯誤消息的描述。 |
fee int | 手續費,可能是渠道/銀行收取。 |
livemode boolean | 是否處于
live
模式。 |
operation_url string | 支付寶批量付款 URL。 |
order_no string | 提現的商戶訂單號。 |
source string | 關聯的
transfer
對象的
id
。 |
status string | 提現狀態,已申請:
created
,處理中:
pending
,完成:
succeeded
,失敗:
failed
,取消:
canceled
。 |
time_canceled timestamp | 提現取消時間,用 Unix 時間戳表示。 |
time_succeeded timestamp | 提現成功時間,用 Unix 時間戳表示。 |
user string | 提現關聯
user
對象的
id
。 |
user_fee int | 需要用戶承擔的手續費,單位為分。 |
settle_account string | 提現使用的
settle_account
對象的
id
。 |
metadata hash | 詳見 元數據 。 |
{
"id": "1701611150302360654",
"object": "withdrawal",
"app": "app_1Gqj58ynP0mHeX1q",
"amount": 20000,
"asset_transaction": "",
"balance_transaction": "",
"channel": "unionpay",
"created": 1472648887,
"description": "test232description",
"extra": {
"account": "6225210207073918",
"name": "姓名",
"open_bank_code": "0102",
"prov": "上海",
"city": "上海"
},
"fee": 200,
"livemode": true,
"metadata":{},
"order_no": "20160829133002",
"source": null,
"status": "created",
"time_canceled": null,
"time_succeeded": null,
"user": "user_001",
"user_fee": 50
}
通過調用該接口發起一筆用戶提現申請,提現申請表示用戶提現意圖,不會真實發起付款行為,需要后續確認。注:微信服務商模式商戶暫不支持提現。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
user required string | user
對象的
id
。 |
amount required int | 提現扣除的余額,單位為分,取值范圍 1~1000000000。 |
channel required string | 提現使用的付款渠道:
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯)、
allinpay
(通聯)和
jdpay
(京東)。此外,還支持使用自定義渠道
custom
,該渠道不需要真實付款,并在確認提現時同步返回成功結果。 |
order_no required string | 提現使用的商戶訂單號。
wx/wx_pub/wx_lite
規定為 1 ~ 32 位不能重復的數字字母組合;
alipay
為 1 ~ 64 位不能重復的數字字母組合;
unionpay
為 1 ~ 16 位的純數字;
allinpay
為 20 ~ 40 位不能重復的數字字母組合,必須以簽約的通聯的商戶號開頭(建議組合格式:通聯商戶號 + 時間戳 + 固定位數順序流水號,不包含
+
號)。 |
description required string | 附加說明,最多 60 個 Unicode 字符。渠道為
jdpay、alipay、unionpay、wx、wx_pub、wx_lite
時,最多 60 個字節或 20 個 Unicode 字符;渠道為
allinpay
時,最多 30 個 Unicode 字符。 |
user_fee optional int | 需要用戶承擔的手續費,單位為分。 |
extra optional hash | 相關的附加參數,詳見下方 extra 參數說明 。 |
metadata optional hash | 詳見 元數據 。 |
settle_account optional string | 用戶結算賬戶 settle_account 對象 ID。傳入此參數時將使用結算賬戶提現,不需要填寫 extra 參數。同時填寫 extra 時,此參數不生效。 |
extra 參數說明
unionpay | 描述 |
---|---|
account required string | 1~32位,收款人銀行卡號或者存折號。 |
type optional string | 付款類型,分為兩種: "b2c" :企業向個人付款, "b2b" :企業向企業付款。不傳時默認為 "b2c" 類型。 |
name required string | 1~100位,收款人姓名。 |
open_bank_code optional string | 4位,開戶銀行編號,詳情請參考 銀聯電子代付銀行編號說明 。 |
open_bank optional string | 1~50位,開戶銀行。 |
prov optional string | 1~20位,省份。 |
city optional string | 1~40位,城市。 |
sub_bank optional string | 1~80位,開戶支行名稱。 |
注:open_bank_code
和 open_bank
兩個參數必傳一個,建議使用 open_bank_code
,若都傳參則優先使用 open_bank_code
讀取規則;prov
和 city
均為可選參數,如果不傳參,則使用默認值 "上海" 給渠道接口。
alipay | 描述 |
---|---|
account required string | 接收者支付寶賬號。 |
type optional string | 付款類型,分為兩種: "b2c" :企業向個人付款, "b2b" :企業向企業付款。不傳時默認為 "b2c" 類型。 |
name required string | 收款人姓名。 |
account_type optional string | 收款方賬戶類型。默認值:"ALIPAY_LOGONID"。ALIPAY_USERID:支付寶賬號對應的支付寶唯一用戶號,以 2088 開頭的 16 位純數字組成;ALIPAY_LOGONID:支付寶登錄號,支持郵箱和手機號格式。 |
wx、wx_pub、wx_lite | 描述 |
---|---|
open_id required string | 提現用戶在微信平臺下的 open_id。點此參考
如何獲取
open_id
。 |
type optional string | 付款類型,目前僅支持 "b2c" :企業向個人付款。 |
name optional string | 收款人姓名。 |
force_check optional boolean | 是否強制校驗收款人姓名。僅當
name
參數不為空時該參數生效。 |
allinpay | 描述 |
---|---|
account required string | 收款人銀行卡號或者存折號。 |
type optional string | 付款類型,分為兩種: "b2c" :企業向個人付款, "b2b" :企業向企業付款。不傳時默認為 "b2c" 類型。 |
name required string | 收款人姓名。 |
open_bank_code required string | 4位開戶銀行編號,詳情請參考 通聯代付銀行編號說明 。 |
business_code optional string | 5位業務代碼,根據通聯業務人員提供,不填則使用通聯提供默認值為 "09900"。詳情請參考 通聯代付業務代碼說明 。 |
card_type optional int | 銀行卡號類型,0:銀行卡;1:存折,默認值為 "0"。 |
sub_bank optional,string | B2B 提現必填,1~80位,開戶行詳細名稱,也叫網點,如:中國建設銀行廣州東山廣場分理處。詳情請下載 支付行號 。 |
sub_bank_code optional,string | B2B 提現必填,1~12位,支付行號。詳情請下載 支付行號 。 |
prov optional,string | B2B 提現必填,1~20位,省份,不帶 “省” 或 “自治區”,需填寫成:廣東、廣西、內蒙古等。詳情請參考 中國郵政區號表 內的「省洲名稱」列的內容填寫。 |
city optional,string | B2B 提現必填,1~40位,城市,不帶 “市”,需填寫成:廣州、南寧等。如果是直轄市,則填區,如北京(市)朝陽(區)。詳情請參考 中國郵政區號表 內的「地區名稱」列的內容填寫。 |
jdpay | 描述 |
---|---|
account required string | 收款人銀行卡號或者存折號。 |
type optional string | 付款類型,分為兩種: "b2c" :企業向個人付款, "b2b" :企業向企業付款。不傳時默認為 "b2c" 類型。 |
name required string | 收款人姓名。 |
open_bank_code
required
string |
開戶銀行編號。 |
custom | 描述 |
---|---|
type optional string | 付款類型,分為兩種: "b2c" :企業向個人付款, "b2b" :企業向企業付款。不傳時默認為 "b2c" 類型。 |
返回
返回一個 withdrawal
提現對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/withdrawals
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/withdrawals \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1478833871" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"amount": 20000,
"user": "user_001",
"order_no": "20160829133002",
"user_fee": 50,
"description": "test232description",
"channel": "unionpay",
"extra": {
"account": "6225210207073918",
"name": "姓名",
"open_bank_code": "0102",
"prov": "上海",
"city": "上海"
}
}'
{
"id": "1701611150302360654",
"object": "withdrawal",
"app": "app_LibTW1n1SOq9Pin1",
"amount": 20000,
"asset_transaction": "",
"balance_transaction": "",
"channel": "unionpay",
"created": 1472648887,
"description": "test232description",
"extra": {
"account": "6225210207073918",
"name": "姓名",
"open_bank_code": "0102",
"prov": "上海",
"city": "上海"
},
"fee": 200,
"livemode": true,
"metadata":{},
"order_no": "20160829133002",
"source": null,
"status": "created",
"time_canceled": null,
"time_succeeded": null,
"user_fee": 50
}
審核一筆用戶提現申請,如果確認提現,則會發起真實提現打款。如果使用測試模式的 API Key,則不會發生真實交易。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
WITHDRAWAL_ID required string | 提現對象的
id
,該參數僅需要填寫在請求地址內。 |
status required string | 取值范圍:確認為
pending
,取消為
canceled
。 |
返回
返回一個 withdrawal
提現對象,或者返回一個錯誤,詳見 錯誤。
withdrawal
對象會根據渠道的返回置為 "succeeded"、"failed"、"created" 狀態。若提現成功,則 withdrawal
對象的 status 值變為 succeeded
,Ping++ 會發送提現成功的 Webhooks 通知;若提現因用戶原因失敗(如提現賬戶有誤),則 withdrawal
對象的 status 值變為 failed
,Ping++ 會發送提現失敗的 Webhooks 通知;若提現因非用戶原因失敗(商戶付款金額不足),則 withdrawal
對象的 status 值變為 created
。
PUT https://api.pingxx.com/v1/apps/{APP_ID}/withdrawals/{WITHDRAWAL_ID}
curl https://api.pingxx.com/v1/apps/{app_id}/withdrawals/{WITHDRAWAL_ID} \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"status": "pending"
}'
{
"id": "1701611150302360654",
"object": "withdrawal",
"app": "app_1Gqj58ynP0mHeX1q",
"amount": 20000,
"asset_transaction": "",
"balance_transaction": "",
"channel": "unionpay",
"created": 1472648887,
"description": "test232description",
"extra": {
"account": "6225210207073918",
"name": "姓名",
"open_bank_code": "0102",
"prov": "上海",
"city": "上海"
},
"fee": 200,
"livemode": true,
"metadata":{},
"order_no": "20160829133002",
"source": null,
"status": "pending",
"time_canceled": null,
"time_succeeded": null,
"user": "user_001",
"user_fee": 50
}
通過 withdrawal
對象的 id
查詢一個已創建的 withdrawal
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
WITHDRAWAL_ID required string | 提現對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 withdrawal
提現對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/withdrawals/{WITHDRAWAL_ID}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/withdrawals/1701611150302360654 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1478833871" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "1701611150302360654",
"object": "withdrawal",
"app": "app_LibTW1n1SOq9Pin1",
"amount": 20000,
"asset_transaction": "",
"balance_transaction": "",
"channel": "unionpay",
"created": 1472648887,
"description": "test232description",
"extra": {
"account": "6225210207073918",
"name": "姓名",
"open_bank_code": "0102",
"prov": "上海",
"city": "上海"
},
"fee": 200,
"livemode": true,
"metadata":{},
"order_no": "20160829133002",
"source": null,
"status": "created",
"time_canceled": null,
"time_succeeded": null,
"user_fee": 50
}
返回之前創建過 withdrawal
對象的一個列表。列表是按創建時間進行排序,總是將最新的 withdrawal
對象顯示在最前。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
user optional string | user
對象的
id
。 |
page optional int | 頁碼,默認值為 "1",取值范圍:1~100000000。 |
per_page optional int | 每頁數量,默認值為 "10"。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
status optional string | 提現狀態。已申請:
created
,處理中:
pending
,成功:
succeeded
,失敗:
failed
,取消:
canceled
。 |
channel optional string | 提現使用的付款渠道:
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯)、
allinpay
(通聯)和
jdpay
(京東)。 |
返回
返回一個 withdrawal
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/withdrawals
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/withdrawals/1701611150302360654?user=user_001 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1478833871" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/app_1Gqj58ynP0mHeX1q/withdrawals", "has_more": true, "total_withdrawals_amount": 100000, "data": [ { "id": "1701611150302360654", "object": "withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "amount": 20000, "asset_transaction": "", "balance_transaction": "", "channel": "unionpay", "created": 1472648887, "description": "test232description", "extra": { "account": "6225210207073918", "name": "姓名", "open_bank_code": "0102", "prov": "上海", "city": "上海" }, "fee": 200, "livemode": true, "metadata":{}, "order_no": "20160829133002", "source": null, "status": "created", "time_canceled": null, "time_succeeded": null, "user": "user_001", "user_fee": 50 }, {...}, {...} ] * }
該類型的 Event 對象會在包含的 withdrawal
對象提現完成后觸發,包括:提現成功、提現失敗,以 Webhooks 形式發送至客戶配置的 Webhooks URL 。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
balance.withdrawal.succeeded | 提現成功觸發。 |
balance.withdrawal.failed | 提現失敗觸發。 |
你可以使用批量提現接口,批量對用戶的提現申請做確認動作。
屬性 | 描述 |
---|---|
id string | 批量提現
id
。 |
object string | 值為 "batch_withdrawal"。 |
app string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
livemode boolean | 是否處于 live 模式。 |
amount int | 提現扣除的總金額,單位為分。 |
amount_succeeded int | 提現成功金額。 |
amount_failed int | 提現失敗金額。 |
amount_canceled int | 提現取消金額。 |
count int | 總提現筆數。 |
count_succeeded int | 提現成功筆數。 |
count_failed int | 提現失敗筆數。 |
count_canceled int | 提現取消筆數。 |
fee int | 渠道收取的手續費總額。 |
operation_url string | 支付寶批量付款 URL。 |
source string | 關聯
batch_transfer
對象的
id
。 |
status string | 批量提現狀態。處理中:
pending
,全部成功:
succeeded
,全部失敗:
failed
,取消:
canceled
,部分成功:
partially_succeeded
。 |
user_fee int | 承擔的用戶手續費總額。 |
withdrawals list | 包含的
withdrawal
對象列表。 |
time_finished int | 完成時間,用 Unix 時間戳表示。 |
metadata hash | 詳見 元數據 。 |
你可以通過創建 batch_withdrawal
對象對多個提現申請狀態的 withdrawal
對象做批量確認或取消。在批量動作完成后,所以包含的 withdrawal
對象的狀態都會進行相應的改變。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
withdrawals required array | withdrawal
對象的
id
列表,不能超過 200 個元素。 |
metadata optional hash | 詳見 元數據 。 |
status optional string | 提現操作。提現確認:
pending
,提現取消:
canceled
,默認值:
pending
。 |
返回
返回一個 batch_withdrawal
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/batch_withdrawals
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/batch_withdrawals \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1478833871" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"withdrawals": [
"1701611150302360654",
"1701611151015078981"
]
}'
{ "id": "1901611151015122025", "object": "batch_withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "created": 1478833871, "livemode": false, "amount": 80000, "amount_succeeded": 0, "amount_failed": 0, "amount_canceled": 0, "count_succeeded": 0, "count_failed": 0, "count_canceled": 0, "fee": 0, "metadata": {}, "status": "pending", "user_fee": 0, "withdrawals": { "object": "list", "url": null, "has_more": false, "data": [ { "id": "1701611150302360654", "object": "withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "amount": 20000, "asset_transaction": "", "balance_transaction": "", "channel": "alipay", "created": 1472648887, "description": "test232description", "extra": { "account": "[email protected]", "name": "姓名" }, "fee": 200, "livemode": false, "metadata":{}, "order_no": "20160829133002", "source": null, "status": "pending", "time_canceled": null, "time_succeeded": null, "user": "user_001", "user_fee": 50 }, {...}, {...} ] } }
通過 batch_withdrawal
對象的 id
查詢一個已創建的 batch_withdrawal
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
BATCH_WITHDRAWAL_ID string required | batch_withdrawal
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 batch_withdrawal
對象,或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/batch_withdrawals/{BATCH_WITHDRAWAL_ID}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/batch_withdrawals/1901611151015122025 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1478833871" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "id": "1901611151015122025", "object": "batch_withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "created": 1478833871, "livemode": false, "amount": 80000, "amount_succeeded": 0, "amount_failed": 0, "amount_canceled": 0, "count": 3, "count_succeeded": 0, "count_failed": 0, "count_canceled": 0, "fee": 0, "metadata": {}, "operation_url": "https://mapi.alipay.com/gateway.do?", "status": "pending", "source": "1801701051435464631", "time_finished": null, "user_fee": 0, "withdrawals": { "object": "list", "url": null, "has_more": false, "data": [ { "id": "1701611150302360654", "object": "withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "amount": 20000, "asset_transaction": "", "balance_transaction": "", "channel": "alipay", "created": 1472648887, "description": "test232description", "extra": { "account": "[email protected]", "name": "姓名" }, "failure_msg": null, "fee": 200, "livemode": false, "metadata":{}, "operation_url": null, "order_no": "20160829133002", "source": null, "status": "pending", "time_canceled": null, "time_succeeded": null, "user": "user_001", "user_fee": 50 }, {...}, {...} ] } }
返回之前創建過 batch_withdrawal
對象的一個列表。列表是按創建時間進行排序,總是將最新的 batch_withdrawal
對象顯示在最前。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
page optional int | 頁碼,默認值為 "1",取值范圍:1~100000000。 |
per_page optional int | 每頁數量,默認值為 "10"。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
status optional string | 提現狀態,已申請:
created
,處理中:
pending
,全部成功:
succeeded
,全部失敗:
failed
,全部取消:
canceled
,部分成功:
partially_succeeded
。 |
返回
返回一個 batch_withdrawal
對象列表,或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/batch_withdrawals
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/batch_withdrawals \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1478833871" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "has_more": false, "url": "/v1/apps/app_1Gqj58ynP0mHeX1q/batch_withdrawals", "data": [ { "id": "1901611151015122025", "object": "batch_withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "created": 1478833871, "livemode": false, "amount": 80000, "amount_succeeded": 0, "amount_failed": 0, "amount_canceled": 0, "count": 3, "count_succeeded": 0, "count_failed": 0, "count_canceled": 0, "fee": 0, "metadata": {}, "operation_url": "https://mapi.alipay.com/gateway.do?", "status": "pending", "source": "1801701051435464631", "time_finished": null, "user_fee": 0, "withdrawals": { "object": "list", "url": null, "has_more": false, "data": [ { "id": "1701611150302360654", "object": "withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "amount": 20000, "asset_transaction": "", "balance_transaction": "", "channel": "alipay", "created": 1472648887, "description": "test232description", "extra": { "account": "[email protected]", "name": "姓名" }, "failure_msg": null, "fee": 200, "livemode": false, "metadata":{}, "operation_url": null, "order_no": "20160829133002", "source": null, "status": "pending", "time_canceled": null, "time_succeeded": null, "user": "user_001", "user_fee": 50 }, {...}, {...} ] } }, {...}, {...} ] }
該類型的 Event 對象會在所有包含的 withdrawal
對象提現完成后觸發,包括:批量提現成功、批量提現失敗、批量提現撤銷以及批量提現部分成功,以 Webhooks 形式發送至客戶配置的 Webhooks URL 。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
batch_withdrawal.succeeded | 在包含的所有的提現對象全部成功時觸發。 |
batch_withdrawal.partially_succeeded | 在包含的提現對象部分成功、部分失敗時觸發。 |
batch_withdrawal.canceled | 在包含的所有的提現對象全部取消時觸發。 |
batch_withdrawal.failed | 在包含的所有的提現對象全部失敗時觸發。 |
你可以請求一個新的 balance_bonus
對象向用戶發起一次余額贈送。贈送成功后,用戶的可用余額會增加,贈送的余額不能提現、轉賬,只能用于消費。
屬性 | 描述 |
---|---|
id string | 余額贈送對象 ID,由 Ping++ 生成。 |
object string | 值為 "balance_bonus"。 |
app string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
created int | 創建時間,用 Unix 時間戳表示。 |
livemode timestamp | 是否是
live
模式。 |
paid boolean | 是否已贈送。 |
refunded boolean | 是否存在退款信息,無論退款是否成功。 |
order_no string | 商戶訂單號,必須在商戶的系統內唯一。 |
amount int | 贈送金額,單位為分。 |
amount_refunded int | 已退款的贈送金額,單位為分。 |
time_paid int | 支付成功時間,用 Unix 時間戳表示。 |
user string | 受贈的
user
對象的
id
。 |
balance_transaction string | 關聯的
balance_transaction
對象的
id
。 |
description string | 附加說明,最多 60 個 Unicode 字符。 |
metadata hash | 詳見 元數據 。 |
發起一次贈送請求時需要創建一個新的 balance_bonus
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
amount required int | 受贈金額,單位為分。 |
user required string | 受贈的
user
對象的
id
。 |
order_no required string | 商戶訂單號,必須在商戶的系統內唯一,64 位以內。 |
description optional string | 附加說明,最多 60 個 Unicode 字符。 |
metadata optional hash | 詳見 元數據 。 |
返回
返回一個 balance_bonus
對象,或者一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/balance_bonuses
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/balance_bonuses \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d {
"amount": 1000,
"user": "test_user_001",
"order_no": "2017071110258972"
"description": "余額贈送描述"
}
{
"id": "311317071315160600000100",
"object": "balance_bonus",
"app": "app_1Gqj58ynP0mHeX1q",
"created": 1496728534,
"livemode": false,
"paid": true,
"refunded": false,
"amount": 100,
"amount_refunded": 0,
"time_paid": 1496728594,
"user": "user_007",
"order_no": "2017071110258972",
"balance_transaction": "310317060612081500000501",
"description": "余額贈送",
"metadata": {}
}
通過 balance_bonus
對象的 id
查詢一個已創建的 balance_bonus
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
BALANCE_BONUSES_ID required string | balance_bonus
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 balance_bonus
對象,或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/balance_bonuses/{BALANCE_BONUSES_ID}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/balance_bonuses/22170606180021542366 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "311317071315160600000100",
"object": "balance_bonus",
"app": "app_1Gqj58ynP0mHeX1q",
"created": 1496728534,
"livemode": false,
"paid": true,
"refunded": false,
"amount": 100,
"amount_refunded": 0,
"time_paid": 1496728594,
"user": "user_007",
"order_no": "2017071110258972",
"balance_transaction": "310317060612081500000501",
"description": "余額贈送",
"metadata": {}
}
返回之前創建過 balance_bonus
對象的一個列表。列表是按創建時間進行排序,總是將最新的 balance_bonus
對象顯示在最前。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
user optional string | 受贈的
user
對象的
id
。 |
order_no optional string | 商戶訂單號,適配每個渠道對此參數的要求,必須在商戶的系統內唯一。 |
page optional int | 頁碼,默認值為 "1",取值范圍:1~100000000。 |
per_page optional int | 每頁數量,默認值為 "10"。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 balance_bonus
對象列表,或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/balance_bonuses
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/balance_bonuses \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/app_1Gqj58ynP0mHeX1q/balance_bonuses", "has_more": true, "data": [ { "id": "311317071315160600000100", "object": "balance_bonus", "app": "app_1Gqj58ynP0mHeX1q", "created": 1496728534, "livemode": false, "paid": true, "refunded": false, "amount": 100, "amount_refunded": 0, "time_paid": 1496728594, "user": "user_007", "order_no": "2017071110258972", "balance_transaction": "310317060612081500000501", "description": "余額贈送", "metadata": {} }, {...}, {...} ] }
通過創建 balance_transfer
對象發起用戶間的余額轉賬。轉賬完成后可以調用 user
對象查詢接口,查詢用戶的余額。轉賬的余額可以消費、再次轉賬和提現。注: 使用此接口必須保證用戶可提現余額大于0。
屬性 | 描述 |
---|---|
id string | 用戶余額轉賬對象 ID,由Ping++ 生成。 |
object string | 值為 "balance_transfer"。 |
app string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
livemode boolean | 是否是
live
模式。 |
status string | 目前值為轉賬成功:
succeeded
。 |
amount int | 接收方收到轉賬的金額,單位為分。 |
order_no string | 商戶訂單號,適配每個渠道對此參數的要求,必須在商戶的系統內唯一。 |
user_fee int | 向發起轉賬的用戶額外收取的手續費,單位為分,且值需小于 amount。 |
user string | 轉出方的
user
對象的
id
。 |
recipient string | 接收方的
user
對象的
id
。 |
user_balance_transaction string | 轉賬關聯的轉出方
balance_transaction
對象的
id
。 |
recipient_balance_transaction string | 轉賬關聯的接收方
balance_transaction
對象的
id
。 |
description string | 附加說明,最多 60 個 Unicode 字符。 |
metadata hash | 詳見 元數據 。 |
發起一次余額轉賬請求時需要創建一個新的 balance_transfer
對象。該接口不支持商戶向用戶轉賬,如果要發起 B2C 轉賬,請使用 企業付款 發起,將渠道設置為 balance,在企業付款完成后,會自動為你生成 balance_transfer
對象。
如果使用了余額分潤,在分潤結算發起后,也會自動生成 balance_transfer
對象。注: 使用此接口必須保證用戶可提現余額大于0。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
amount required int | 接收方收到轉賬的金額,單位為分。 |
user required string | 發送方
user
對象的
id
,該值不能為 "0"。 |
recipient required string | 接收方
user
對象的
id
。 |
order_no required string | 商戶訂單號,必須在商戶的系統內唯一,取值范圍 1~64 位。 |
user_fee optional int | 向發起轉賬的用戶額外收取的手續費,單位為分,默認值為 "0",且值需小于 amount。 |
description optional string | 附加說明,最多 60 個 Unicode 字符。 |
metadata optional hash | 詳見 元數據 。 |
返回
返回 balance_transfers
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/balance_transfers
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/balance_transfers \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"amount": 100,
"description": "余額轉賬",
"user": "user_007",
"recipient": "user_008",
"order_no": "2017071110259981"
}'
{
"id": "311117071315154300000100",
"object": "balance_transfer",
"app": "app_1Gqj58ynP0mHeX1q",
"created": 1496728534,
"livemode": false,
"status": "succeeded",
"amount": 1000,
"order_no": "2017071110259981",
"user": "user_007",
"recipient": "user_008",
"user_fee": 0,
"user_balance_transaction": "310317060612081500000101",
"recipient_balance_transaction": "310317060612081500000201",
"description": "余額轉賬",
"metadata": {}
}
通過 balance_transfer
對象的 id
查詢一個已創建的 balance_transfer
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
BALANCE_TRANSFER_ID required string | balance_transfer
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 balance_transfer
對象,或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/balance_transfers/{BALANCE_TRANSFER_ID}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/balance_transfers/19161008180021542366 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "311117071315154300000100",
"object": "balance_transfer",
"app": "app_1Gqj58ynP0mHeX1q",
"created": 1496728534,
"livemode": false,
"status": "succeeded",
"amount": 1000,
"order_no": "2017071110259981",
"user": "user_007",
"recipient": "user_008",
"user_fee": 0,
"user_balance_transaction": "310317060612081500000101",
"recipient_balance_transaction": "310317060612081500000201",
"description": "余額轉賬",
"metadata": {}
}
返回之前創建過 balance_transfer
對象的一個列表。列表是按創建時間進行排序,總是將最新的 balance_transfer
對象顯示在最前。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
user optional string | 轉出方
user
對象的
id
。 |
recipient optional string | 接收方
user
對象的
id
。 |
page optional int | 頁碼,默認值為 "1",取值范圍:1~100000000。 |
per_page optional int | 每頁數量,默認值為 "10"。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 balance_transfer
對象列表,或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/balance_transfers
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/balance_transfers \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/app_1Gqj58ynP0mHeX1q/balance_transfers", "has_more": true, "data": [ { "id": "311117071315154300000100", "object": "balance_transfer", "app": "app_1Gqj58ynP0mHeX1q", "created": 1496728534, "livemode": false, "status": "succeeded", "amount": 1000, "order_no": "2017071110259981", "user": "user_007", "recipient": "user_008", "user_fee": 0, "user_balance_transaction": "310317060612081500000101", "recipient_balance_transaction": "310317060612081500000201", "description": "余額轉賬", "metadata": {} }, {...}, {...} ] }
當一筆訂單設定了余額結算信息參數時,支付完成后,系統將自動將扣除手續費(user_fee)后的支付金額結算到指定的用戶余額賬戶并生成 balance_settlement
對象。通常使用該對象查詢一筆或多筆訂單余額結算的狀態。注意: 結算的入賬狀態是 Ping++ 系統處理的一個中間狀態,一般不需要商戶關心。
屬性 | 描述 |
---|---|
id string | 用戶余額結算對象 ID,由Ping++ 生成。 |
object string | 值為 "balance_settlement"。 |
app string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
livemode boolean | 是否是
live
模式。 |
status string | 結算狀態。待結算:
created
(表示余額還未到結算用戶余額賬戶),已入賬:
credited
(表示余額已到賬但不可用),已結算:
succeeded
(表示余額到賬且可用)。 |
amount int | 結算金額,包含用戶手續費,單位分。 |
user string | 結算的
user
對象的
id
。 |
user_fee int | 向結算用戶收取的手續費,單位為分。 |
time_credited int | 入賬完成時間。 |
time_succeeded int | 結算完成時間。 |
refunded boolean | 余額結算金額是否有退款。 |
amount_refunded int | 已退款的余額結算金額,單位分。 |
charge string | 結算關聯的
charge
對象的
id
。 |
order_no string | 結算關聯的
charge
對象內的
order_no
。 |
transaction_no string | 結算關聯的
charge
對象內的
transaction_no
。 |
failure_msg string | 結算失敗信息。 |
通過 balance_settlement
對象的 id
查詢一個已創建的 balance_settlement
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
BALANCE_SETTLEMENT_ID required string | balance_settlement
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 balance_settlement
對象,或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/balance_settlements/{BALANCE_SETTLEMENT_ID}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/balance_settlements/670180130750711562240000 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1517312911" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "670180130750711562240000",
"object": "balance_settlement",
"app": "app_1Gqj58ynP0mHeX1q",
"created": 1517314911,
"livemode": false,
"amount": 100,
"status": "succeeded",
"user": "user_001",
"user_fee": 5,
"charge": "ch_aX9aH8Wf1anHnjbrvTOuv5SK",
"order_no": "20181517314882",
"time_credited": 1517314911,
"time_succeeded": 1517314911,
"refunded": false,
"amount_refunded": 0,
"transaction_no": "20180130054018297440163168",
"failure_msg": null
}
返回之前創建過 balance_settlement
對象的一個列表。列表是按創建時間進行排序,總是將最新的 balance_settlement
對象顯示在最前。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
user optional string | 余額結算
user
對象的
id
。 |
status optional string | 結算狀態。待結算:
created
(表示余額還未到結算用戶余額賬戶),已入賬:
credited
(表示余額已到賬但不可用),已結算:
succeeded
(表示余額到賬且可用)。 |
refunded optional boolean | 余額結算金額是否有退款。 |
charge optional string | 結算關聯的
charge
對象的
id
。 |
order_no optional string | 結算關聯的
charge
對象的
order_no
。 |
page optional int | 頁碼,默認值為 "1",取值范圍:1~100000000。 |
per_page optional int | 每頁數量,默認值為 "10"。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 balance_settlement
對象列表,或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/balance_settlements
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/balance_settlements \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1517312911" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/app_1Gqj58ynP0mHeX1q/balance_settlements", "has_more": true, "data": [ { "id": "670180130750711562240000", "object": "balance_settlement", "app": "app_1Gqj58ynP0mHeX1q", "created": 1517314911, "livemode": false, "amount": 100, "status": "succeeded", "user": "user_001", "user_fee": 5, "charge": "ch_aX9aH8Wf1anHnjbrvTOuv5SK", "order_no": "20181517314882", "time_credited": 1517314911, "time_succeeded": 1517314911, "refunded": false, "amount_refunded": 0, "transaction_no": "20180130054018297440163168", "failure_msg": null }, {...}, {...} ] }
當用戶的余額賬戶發生充值、充值退款、提現、收到贈送、支付/收款、退款/收到退款、轉賬/收到轉賬、分潤/收到分潤、余額結算等行為時,Ping++ 會自動為你生成 balance_transaction
對象記錄用戶余額賬戶變化的明細。amount 為正值表示余額增加,amount 為負值表示余額減少。
屬性 | 描述 |
---|---|
id string | 余額明細對象 ID,由 Ping++ 生成。 |
object string | 值為 "balance_transaction"。 |
app | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
amount int | 交易金額,單位為分。 |
available_balance string | 該筆交易發生后,用戶的可用余額。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
livemode boolean | 是否是
live
模式。 |
description string | 附加說明,最多 255 個 Unicode 字符。 |
source string | 關聯對象的 ID,充值/充值退款為
recharge
對象,提現為
withdrawal
對象,贈送為
balance_bonus
對象,支付為
charge
對象,退款為
refund
對象,轉賬/分潤結算為
balance_transfer
對象,入賬/入賬退款為
balance_settlement
對象。 |
type string | 交易類型。充值:
recharge
,充值退款:
recharge_refund
,充值退款失敗:
recharge_refund_failed
,提現申請:
withdrawal
,提現失敗:
withdrawal_failed
,提現撤銷:
withdrawal_revoked
,支付/收款:
payment
,退款/收到退款:
payment_refund
,轉賬/收到轉賬:
transfer
,贈送:
receipts_extra
,分潤/收到分潤:
royalty
,入賬:
credited
,入賬退款:
credited_refund
,入賬退款失敗:
credited_refund_failed
。 |
user string | user
對象的
id
。 |
{
"id": "310216111615002600000601",
"object": "balance_transaction",
"app": "app_1Gqj58ynP0mHeX1q",
"amount": 100,
"available_balance": 1000,
"created": 1470904889,
"description": "充值",
"livemode": false,
"source": "ch_2duvbLr1ivXre1uc8K9048uT",
"type": "recharge",
"user": "user_001"
}
通過 balance_transaction
對象的 id
查詢一個已創建的 balance_transaction
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
TXN_ID required string | balance_transaction
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 balance_transaction
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/balance_transactions/{TXN_ID}
curl https://api.pingxx.com/v1/apps/{app_id}/balance_transactions/txn_14697807964587241560000001 \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "310216111615002600000601",
"object": "balance_transaction",
"app": "app_1Gqj58ynP0mHeX1q",
"amount": 100,
"available_balance": 1000,
"created": 1470904889,
"description": "充值",
"livemode": false,
"source": "ch_2duvbLr1ivXre1uc8K9048uT",
"type": "recharge",
"user": "user_001"
}
返回之前創建過 balance_transaction
對象的一個列表。列表是按創建時間進行排序,總是將最新的 balance_transaction
對象顯示在最前。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
user optional string | user
對象的
id
。 |
page optional int | 頁碼,默認值為 "1",取值范圍:1~100000000。 |
per_page optional int | 每頁數量,默認值為 "10"。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
source optional string | 關聯對象的 ID,充值、充值退款為
recharge
對象,提現為
withdrawal
對象,贈送為
balance_bonus
對象,支付為
charge
對象,退款為
refund
對象,轉賬、分潤結算為
balance_transfer
對象。 |
type optional string | 交易類型,充值:
recharge
,充值退款:
recharge_refund
,充值退款失敗:
recharge_refund_failed
,提現申請:
withdrawal
,提現失敗:
withdrawal_failed
,提現撤銷:
withdrawal_revoked
,支付/收款:
payment
,退款/收到退款:
payment_refund
,轉賬/收到轉賬:
transfer
,額外受贈:
receipts_extra
,分潤/收到分潤:
royalty
。 |
返回
返回一個 balance_transaction
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/balance_transactions
curl https://api.pingxx.com/v1/apps/{app_id}/balance_transactions/ \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"object": "list",
"url": "/v1/apps/{APP_ID}/balance_transactions",
"has_more": true,
"data": [
{
"id": "310216111615002600000601",
"object": "balance_transaction",
"app": "app_1Gqj58ynP0mHeX1q",
"amount": 100,
"available_balance": 1000,
"created": 1470904889,
"description": "充值",
"livemode": false,
"source": "ch_2duvbLr1ivXre1uc8K9048uT",
"type": "recharge",
"user": "user_001"
},
{
}
]
}
你可以通過創建 order
對象完成一筆訂單的下單和付款動作。一個 order
對象可能包含多筆(多渠道)的 charge
對象。
order
對象支持優惠券使用,子商戶收款,分潤等功能(均為可選),請參考相應的章節獲取更多詳情。
屬性 | 描述 |
---|---|
id string | 訂單對象 ID,由 Ping++ 生成。 |
object string | 值為 "order"。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
livemode boolean | 是否是 live 模式。 |
app string | 訂單應用。對應
app
對象的
id
,查看
如何獲取App ID
。 |
status string | 目前訂單支持狀態。分為待支付:created、已付款:paid、存在退款:refunded、已取消:canceled。 |
paid boolean | 是否已付款。當訂單的已付金額 - 已退金額 ≥ 應付金額(amount_paid - amount_refunded ≥ actual_amount)時,該值變為 true 。 |
refunded boolean | 是否存在退款信息,無論退款是否成功。 |
uid string | 消費者
user
對象的
id
。 |
amount int | 原始金額,單位為分。 |
coupon_amount int | 優惠券折扣金額,單位為分。 |
actual_amount int | 應付金額,單位為分。值為原始金額減去優惠券折扣金額(
amount
-
coupon_amount
)。 |
merchant_order_no string | 商戶訂單號,適配每個渠道對此參數的要求,必須在商戶的系統內唯一。長度限制 8~20 位,要求數字或字母,不允許特殊字符。 |
amount_paid int | 已付金額,值為所有包含已付款的
charge
對象的
amount
總額,單位為分。 |
amount_refunded int | 已退金額(成功退款的金額),值為所有包含有退款的
charge
對象的
amount_refunded
總額,單位為分。 |
currency string | 3 位 ISO 貨幣代碼,人民幣為
cny
。 |
subject string | 商品標題,該參數最長為 32 個 Unicode 字符。銀聯全渠道限制在 32 個字節;支付寶部分渠道不支持特殊字符。 |
body string | 商品描述信息,該參數最長為 128 個 Unicode 字符。
yeepay_wap
對于該參數長度限制為 100 個 Unicode 字符;支付寶部分渠道不支持特殊字符。 |
client_ip ip address | 發起支付請求客戶端的 IP 地址,格式為 IPv4 整型,如 127.0.0.1。 |
time_paid timestamp | 付款完成時間,用 Unix 時間戳表示。 |
time_expire timestamp | 訂單過期時間,用 Unix 時間戳表示。時間范圍在訂單創建后的 5 分鐘到 7 天,默認值為 1 天,創建時間以 Ping++ 服務器時間為準。如果訂單到達過期時間仍未完成付款,則會自動變為 canceled 狀態。 |
coupon string | 使用的
coupon
對象的
id
。 |
available_balance int | 訂單支付前,消費者
user
的可用余額,單位為分。 |
receipt_app string | 收款方
app
對象的
id
。訂單使用收款方應用的渠道參數進行支付。 |
service_app string | 服務方
app
對象的
id
。表示承接該交易服務的應用,由服務方和平臺確定訂單的層級鏈都能查詢到該
order
對象。 |
available_methods list | 可使用支付渠道列表。如果收款方是子商戶,會展示該子商戶可使用的支付渠道。客戶端可以根據此列表展示合適的支付渠道供用戶選擇。 |
charge_essentials hash | 最近一次請求的支付所需的支付要素,用于客戶端打開支付控件、支付頁面、顯示二維碼等。包括
channel
、
transaction_no
、
credential
、
extra
等要素。 |
charges list | 關聯的
charge
對象列表,其中
charge
對象不包含
refund
對象。 |
description string | 訂單附加說明,最多 255 個 Unicode 字符。 |
metadata hash | 詳見 元數據 。 |
{
"id": "2001708140000017551",
"object": "order",
"created": 1502695388,
"livemode": false,
"paid": false,
"refunded": false,
"status": "created",
"app": "app_1Gqj58ynP0mHeX1q",
"uid": "user_007",
"available_balance": 0,
"merchant_order_no": "2017081400000006",
"amount": 1000,
"actual_amount": 800,
"amount_refunded": 0,
"amount_paid": 0,
"coupon_amount": 200,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"client_ip": "127.0.0.1",
"time_paid": null,
"time_expire": 1502781019,
"coupon": "300317081415225500002001",
"description": null,
"metadata": {},
"charge_essentials": {},
"receipt_app": "app_1Gqj58ynP0mHeX1q",
"service_app": "app_1Gqj58ynP0mHeX1q",
"available_methods": [
"balance"
],
"charges": {
"object": "list",
"url": "/v1/charges",
"has_more": false,
"data": []
}
}
通過創建 order
對象完成一筆訂單的下單動作(確認一筆訂單的付款信息),下單時用戶可以使用優惠券對訂單折扣,下單完成后該訂單狀態會變成 created
狀態。當用戶被禁用時,該請求會被拒絕。
請求參數 | 描述 |
---|---|
app required string | 訂單應用,對應
app
對象的
id
,查看
如何獲取App ID
。 |
merchant_order_no required string | 商戶訂單號,適配每個渠道對此參數的要求,必須在商戶的系統內唯一。長度限制 8~20 位,要求數字或字母,不允許特殊字符。 |
amount required int | 訂單原始金額,單位為分。 |
currency required string | 3 位 ISO 貨幣代碼,人民幣為
cny
。 |
client_ip required string | 發起支付請求客戶端的 IP 地址,格式為 IPv4 整型,如 127.0.0.1。 |
subject required string | 商品標題,該參數最長為 32 個 Unicode 字符。銀聯全渠道限制在 32 個字節;支付寶部分渠道不支持特殊字符。 |
body required string | 商品描述信息,該參數最長為 128 個 Unicode 字符。
yeepay_wap
對于該參數長度限制為 100 個 Unicode 字符;支付寶部分渠道不支持特殊字符。 |
uid optional string | user
對象的
id
,默認值為 "0"。若后續需使用
balance
渠道進行支付,則此參數必傳,且支付
extra
參數
user
無需傳。若訂單使用優惠券,則此處需傳入接收優惠券的用戶 id。 |
coupon optional string | 使用的
coupon
對象的
id
。此參數需要與
uid
同時傳入。 |
actual_amount optional int | 訂單應付金額,單位為分。值為訂單原始金額減去優惠券折扣金額(
amount
-
coupon_amount
)。傳入該值則校驗是否和 Ping++ 計算出的應付金額一致,不傳則不校驗。 |
time_expire optional timestamp | 訂單過期時間,用 Unix 時間戳表示。時間范圍在訂單創建后的 5 分鐘到 7 天,默認值為 1 天,創建時間以 Ping++ 服務器時間為準。如果訂單到達過期時間仍未完成付款,則會自動變為
canceled
狀態。 |
receipt_app optional string | 收款方
app
對象的
id
,默認為訂單應用。訂單使用收款方應用的渠道參數進行支付。 |
service_app optional string | 服務方
app
對象的
id
,默認為訂單應用。表示承接該交易服務的應用,由服務方和平臺確定訂單的層級鏈都能查詢到該
order
對象。 |
royalty_users optional list | 分潤的用戶信息列表,默認為[],不分潤。詳見下方的 royalty_users 字段說明 。 |
royalty_template optional string | 使用的
royalty_template
對象的
id
。該參數與
royalty_users
同時傳時將會被忽略。 |
balance_settlement optional hash | 余額結算信息。訂單支付完成時,將扣除用戶手續費后的支付金額結算到指定的用戶余額賬戶。僅對開通了
balance
渠道的應用有效。詳見下方的
balance_settlement 字段說明
。 |
description optional string | 附加說明,最多 255 個 Unicode 字符。 |
metadata optional hash | 詳見 元數據 。 |
royalty_users 字段說明 | 描述 |
---|---|
user required string | 分潤的
user
對象
id
。 |
amount required int | 分潤的金額,單位為分。 |
balance_settlement 字段說明 | 描述 |
---|---|
user required string | 結算的
user
對象的
id
。 |
user_fee optional int | 結算時收取的用戶手續費,由被結算用戶承擔,單位分,默認值為 0。 |
返回
返回一個 order
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/orders
curl https://api.pingxx.com/v1/orders \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"app": "app_1Gqj58ynP0mHeX1q",
"uid": "user_007",
"merchant_order_no": "2017081400000006",
"coupon": "300317081415225500002001",
"amount": 1000,
"client_ip": "127.0.0.1",
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"time_expire": 1502781019
}'
{
"id": "2001708140000017551",
"object": "order",
"created": 1502695388,
"livemode": false,
"paid": false,
"refunded": false,
"status": "created",
"app": "app_1Gqj58ynP0mHeX1q",
"uid": "user_007",
"available_balance": 0,
"merchant_order_no": "2017081400000006",
"amount": 1000,
"actual_amount": 800,
"amount_refunded": 0,
"amount_paid": 0,
"coupon_amount": 200,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"client_ip": "127.0.0.1",
"time_paid": null,
"time_expire": 1502781019,
"coupon": "300317081415225500002001",
"description": null,
"metadata": {},
"charge_essentials": {},
"receipt_app": "app_1Gqj58ynP0mHeX1q",
"service_app": "app_1Gqj58ynP0mHeX1q",
"available_methods": [
"balance"
],
"charges": {
"object": "list",
"url": "/v1/charges",
"has_more": false,
"data": []
}
}
通過該接口對待支付的 order
對象發起一次支付請求,每次請求時需指定用戶付款的支付渠道。可以通過多次調用切換付款的渠道,同時生成多個 charge
對象。如果使用測試模式的 API Key,則不會發生真實交易。訂單付款完成后,會發送 Webhooks 通知。
請求參數 | 描述 |
---|---|
ORDER_ID required string | Ping++ 返回的
order
對象的
id
,用于商品訂單查詢、退款,該參數僅需要填寫在請求地址內。 |
charge_amount required int | 支付金額,單位分(大于 0,僅優惠券全額抵扣時可填 0)。和組合支付的金額(無組合支付則忽略)相加后,值必須等于訂單中的應付金額 - 已付金額 + 已退金額。 |
channel required string | 支付使用的渠道(優惠券全額抵扣時,可不填)。渠道詳情請參考
支付渠道屬性值
,若創建訂單時傳入了
balance_settlement
,則此處不可使用
balance
渠道。除此之外,還支持使用自定義渠道
custom
,該渠道不需要真實付款,并且會同步返回成功結果。 |
extra optional hash | 特定渠道發起交易時需要的額外參數,以及部分渠道支付成功返回的額外參數,詳細參考 支付渠道 extra 參數說明 。 |
charge_order_no optional string | 支付使用的商戶訂單號,默認使用訂單對象中的商戶訂單號。當商戶訂單號在渠道被使用時,需更換新的商戶訂單號。推薦使用 8-20 位,要求數字或字母,不允許特殊字符。 |
time_expire optional timestamp | 支付過期時間,用 Unix 時間戳表示。時間范圍在支付創建后的 5 分鐘到 24 小時,創建時間以 Ping++ 服務器時間為準。默認值為訂單過期時間或渠道支持的最大過期時間中較小的那一個,但不會超過 24 小時。 |
combined_with optional hash | 組合支付信息。組合支付是指該次支付和另一渠道共同支付完成,目前僅支持和余額組合支付,如果訂單存在未全額退款的 Charge 對象則不能組合支付。詳見下方的 combined_with 參數說明 。 |
combined_with 參數說明
參數 | 說明 |
---|---|
channel required string | 支付使用的另一個渠道。不能和支付的
channel
相同,目前僅支持
balance
。 |
charge_amount required int | 支付金額(必須大于 0)。單位分,該金額必須小于訂單應付金額。 |
charge_order_no optional string | 該渠道使用的商戶訂單號,默認和支付的 charge_order_no 值相同。推薦使用 8-20 位,要求數字或字母,不允許特殊字符。 |
返回
返回一個 order
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/orders/{ORDER_ID}/pay
curl https://api.pingxx.com/v1/orders/2001608270000004428/pay \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Content-Type: application/json" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"channel": "alipay_qr",
"charge_amount": 800
}'
{
"id": "2001708140000017551",
"object": "order",
"created": 1502695388,
"livemode": false,
"paid": false,
"refunded": false,
"status": "created",
"app": "app_1Gqj58ynP0mHeX1q",
"uid": "user_007",
"available_balance": 0,
"merchant_order_no": "2017081400000006",
"amount": 1000,
"actual_amount": 800,
"amount_refunded": 0,
"amount_paid": 0,
"coupon_amount": 200,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"client_ip": "127.0.0.1",
"time_paid": null,
"time_expire": 1502781019,
"coupon": "300317081415225500002001",
"description": "",
"metadata": {},
"charge_essentials": {
"channel": "alipay_qr",
"transaction_no": null,
"failure_code": null,
"failure_msg": null,
"credential": {
"object": "credential",
"alipay_qr": "http://sissi.pingxx.com/mock.php?ch_id=ch_1Kyn50DyjXbHbvnv5SGK4qDK&channel=alipay_qr"
},
"extra": {}
},
"receipt_app": "app_1Gqj58ynP0mHeX1q",
"service_app": "app_1Gqj58ynP0mHeX1q",
"available_methods": [
"balance"
],
"charges": {
"object": "list",
"url": "/v1/charges",
"has_more": false,
"data": [
{
"id": "ch_1Kyn50DyjXbHbvnv5SGK4qDK",
"object": "charge",
"created": 1502695440,
"livemode": false,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "alipay_qr",
"order_no": "2017081400000006",
"client_ip": "127.0.0.1",
"amount": 800,
"amount_settle": 800,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra": {},
"time_paid": null,
"time_expire": 1502781019,
"time_settle": null,
"transaction_no": null,
"refunds": null,
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {
"object": "credential",
"alipay_qr": "http://sissi.pingxx.com/mock.php?ch_id=ch_1Kyn50DyjXbHbvnv5SGK4qDK&channel=alipay_qr"
},
"description": null
}
]
}
}
你可以對待支付狀態的 order
對象進行取消動作,訂單被取消后不能再次發起支付。訂單在到達過期時間時仍未完成付款,Ping++ 會自動改變訂單狀態為已取消。訂單如果使用優惠券,在取消后,會自動退回優惠券。
請求參數 | 描述 |
---|---|
ORDER_ID required string | Ping++ 返回的
order
對象的
id
,用于商品訂單查詢、退款,該參數僅需要填寫在請求地址內。 |
status required string | 值填
canceled
,表示更新
order
對象的狀態。 |
user optional string | user
對象的
id
,傳入該參數以檢查是否和訂單的
user
值一致,默認不檢查。 |
返回
返回一個 order
對象,或者返回一個錯誤,詳見 錯誤。
PUT https://api.pingxx.com/v1/orders/{ORDER_ID}
curl https://api.pingxx.com/v1/orders/2001608270000004428 \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '
{
"status": "canceled",
"user": "user_007"
}'
{
"id": "2001708140000017551",
"object": "order",
"created": 1502695388,
"livemode": false,
"paid": false,
"refunded": false,
"status": "canceled",
"app": "app_1Gqj58ynP0mHeX1q",
"uid": "user_007",
"available_balance": 0,
"merchant_order_no": "2017081400000006",
"amount": 1000,
"actual_amount": 800,
"amount_refunded": 0,
"amount_paid": 0,
"coupon_amount": 200,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"client_ip": "127.0.0.1",
"time_paid": null,
"time_expire": 1502781019,
"coupon": "300317081415225500002001",
"description": "",
"metadata": {},
"charge_essentials": {},
"receipt_app": "app_1Gqj58ynP0mHeX1q",
"service_app": "app_1Gqj58ynP0mHeX1q",
"available_methods": [],
"charges": {
"object": "list",
"url": "/v1/charges",
"has_more": false,
"data": [
{
"id": "ch_1Kyn50DyjXbHbvnv5SGK4qDK",
"object": "charge",
"created": 1502695440,
"livemode": false,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "alipay_qr",
"order_no": "2017081400000006",
"client_ip": "127.0.0.1",
"amount": 800,
"amount_settle": 800,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra": {},
"time_paid": null,
"time_expire": 1502781019,
"time_settle": null,
"transaction_no": null,
"refunds": null,
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {},
"description": null
}
]
}
}
通過 order
對象的 id
查詢一個已創建的 order
對象。
請求參數 | 描述 |
---|---|
ORDER_ID required string | order
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 order
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/orders/{ORDER_ID}
curl https://api.pingxx.com/v1/orders/2001608270000004428 \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "2001708140000017551",
"object": "order",
"created": 1502695388,
"livemode": false,
"paid": false,
"refunded": false,
"status": "created",
"app": "app_1Gqj58ynP0mHeX1q",
"uid": "user_007",
"available_balance": 0,
"merchant_order_no": "2017081400000006",
"amount": 1000,
"actual_amount": 800,
"amount_refunded": 0,
"amount_paid": 0,
"coupon_amount": 200,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"client_ip": "127.0.0.1",
"time_paid": null,
"time_expire": 1502781019,
"coupon": "300317081415225500002001",
"description": "",
"metadata": {},
"charge_essentials": {
"channel": "alipay_qr",
"transaction_no": null,
"failure_code": null,
"failure_msg": null,
"credential": {
"object": "credential",
"alipay_qr": "http://sissi.pingxx.com/mock.php?ch_id=ch_1Kyn50DyjXbHbvnv5SGK4qDK&channel=alipay_qr"
},
"extra": {}
},
"receipt_app": "app_1Gqj58ynP0mHeX1q",
"service_app": "app_1Gqj58ynP0mHeX1q",
"available_methods": [
"balance"
],
"charges": {
"object": "list",
"url": "/v1/charges",
"has_more": false,
"data": [
{
"id": "ch_1Kyn50DyjXbHbvnv5SGK4qDK",
"object": "charge",
"created": 1502695440,
"livemode": false,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "alipay_qr",
"order_no": "2017081400000006",
"client_ip": "127.0.0.1",
"amount": 800,
"amount_settle": 800,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra": {},
"time_paid": null,
"time_expire": 1502781019,
"time_settle": null,
"transaction_no": null,
"refunds": null,
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {
"object": "credential",
"alipay_qr": "http://sissi.pingxx.com/mock.php?ch_id=ch_1Kyn50DyjXbHbvnv5SGK4qDK&channel=alipay_qr"
},
"description": null
}
]
}
}
返回之前創建過 order
對象的一個列表。列表是按創建時間進行排序,總是將最新的 order
對象顯示在最前。
請求參數 | 描述 |
---|---|
app required string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
uid optional string | user
對象的
id
。 |
receipt_app optional string | 收款方
app
對象的
id
。訂單使用收款方應用的渠道參數進行支付。 |
service_app optional string | 服務方
app
對象的
id
。表示承接該交易服務的應用,由服務方和平臺確定訂單的層級鏈都能查詢到該
order
對象。 |
paid optional boolean | 是否付款。 |
refunded optional boolean | 是否存在退款信息,無論退款是否成功。 |
canceled optional int | order
對象的
status
是否為
canceled
,"0":未取消,"1":已取消。 |
page optional int | 頁碼,默認值為 "1",取值范圍(1~100000000)。 |
per_page optional int | 每頁數量,默認值為 "10",取值范圍(1~20)。 |
created [ gt ] optional timestamp | 大于
order
對象的創建時間,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 大于或等于
order
對象的創建時間,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 小于
order
對象的創建時間,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 小于或等于
order
對象的創建時間,用 Unix 時間戳表示。 |
返回
返回一個 order
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/orders
curl https://api.pingxx.com/v1/orders \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/orders", "has_more": false, "data": [ { "id": "2001708140000017551", "object": "order", "created": 1502695388, "livemode": false, "paid": false, "refunded": false, "status": "canceled", "app": "app_1Gqj58ynP0mHeX1q", "uid": "user_007", "available_balance": 0, "merchant_order_no": "2017081400000006", "amount": 1000, "actual_amount": 800, "amount_refunded": 0, "amount_paid": 0, "coupon_amount": 200, "currency": "cny", "subject": "Your Subject", "body": "Your Body", "client_ip": "127.0.0.1", "time_paid": null, "time_expire": 1502781019, "coupon": "300317081415225500002001", "description": null, "metadata": null, "charge_essentials": {}, "receipt_app": "app_1Gqj58ynP0mHeX1q", "service_app": "app_1Gqj58ynP0mHeX1q", "available_methods": [], "charges": { "object": "list", "url": "/v1/charges", "has_more": false, "data": [ { "id": "ch_1Kyn50DyjXbHbvnv5SGK4qDK", "object": "charge", "created": 1502695440, "livemode": false, "paid": false, "refunded": false, "reversed": false, "app": "app_1Gqj58ynP0mHeX1q", "channel": "alipay_qr", "order_no": "2017081400000006", "client_ip": "127.0.0.1", "amount": 800, "amount_settle": 800, "currency": "cny", "subject": "Your Subject", "body": "Your Body", "extra": {}, "time_paid": null, "time_expire": 1502781019, "time_settle": null, "transaction_no": null, "refunds": null, "amount_refunded": 0, "failure_code": null, "failure_msg": null, "metadata": {}, "credential": { "object": "credential", "alipay_qr": "http://sissi.pingxx.com/mock.php?ch_id=ch_1Kyn50DyjXbHbvnv5SGK4qDK&channel=alipay_qr" }, "description": null } ] } }, { "id": "2001708140000016421", "object": "order", "created": 1502695222, "livemode": false, "paid": false, "refunded": false, "status": 0, "app": "app_1Gqj58ynP0mHeX1q", "uid": "user_007", "available_balance": 0, "merchant_order_no": "20170814000000006", "amount": 1000, "actual_amount": 990, "amount_refunded": 0, "amount_paid": 0, "coupon_amount": 10, "currency": "cny", "subject": "Your Subject", "body": "Your Body", "client_ip": "127.0.0.1", "time_paid": null, "time_expire": 1502781019, "coupon": "300317081415200100001501", "description": null, "metadata": null, "charge_essentials": {}, "receipt_app": "app_1Gqj58ynP0mHeX1q", "service_app": "app_1Gqj58ynP0mHeX1q", "available_methods": [], "charges": { "object": "list", "url": "/v1/charges", "has_more": false, "data": [] } }, { "id": "2001708140000015581", "object": "order", "created": 1502695142, "livemode": false, "paid": false, "refunded": false, "status": 0, "app": "app_1Gqj58ynP0mHeX1q", "uid": "user_007", "available_balance": 0, "merchant_order_no": "20170814000000001", "amount": 1000, "actual_amount": 990, "amount_refunded": 0, "amount_paid": 0, "coupon_amount": 10, "currency": "cny", "subject": "Your Subject", "body": "Your Body", "client_ip": "127.0.0.1", "time_paid": null, "time_expire": 1502781019, "coupon": "300317081415184800001001", "description": null, "metadata": null, "charge_essentials": {}, "receipt_app": "app_1Gqj58ynP0mHeX1q", "service_app": "app_1Gqj58ynP0mHeX1q", "available_methods": [], "charges": { "object": "list", "url": "/v1/charges", "has_more": false, "data": [] } }, {...}, {...} ] }
通過 order
中的charge
對象的 id
查詢一個已創建的 charge
對象。
請求參數 | 描述 |
---|---|
ORDER_ID required string | order
對象的
id
,該參數僅需要填寫在請求地址內。 |
CHARGE_ID required string | charge
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 charge
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/orders/{ORDER_ID}/charges/{CHARGE_ID}
curl https://api.pingxx.com/v1/orders/2001608270000004421/charges/ch_mPGm1KOGG844eLWvDOfHWvvD \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "ch_1Kyn50DyjXbHbvnv5SGK4qDK",
"object": "charge",
"created": 1502695440,
"livemode": false,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "alipay_qr",
"order_no": "2017081400000006",
"client_ip": "127.0.0.1",
"amount": 800,
"amount_settle": 800,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra": {},
"time_paid": null,
"time_expire": 1502781019,
"time_settle": null,
"transaction_no": null,
"refunds": {
"object": "list",
"url": "/v1/charges/ch_1Kyn50DyjXbHbvnv5SGK4qDK/refunds",
"has_more": false,
"data": []
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {
"object": "credential",
"alipay_qr": "http://sissi.pingxx.com/mock.php?ch_id=ch_1Kyn50DyjXbHbvnv5SGK4qDK&channel=alipay_qr"
},
"description": null
}
返回之前通過 order
對象創建過 charge
對象的一個列表。列表是按創建時間進行排序,總是將最新的 charge
對象顯示在最前。
請求參數 | 描述 |
---|---|
ORDER_ID required integer | order
對象的
id
,該參數僅需要填寫在請求地址內。 |
channel optional string | 支付渠道。參考 支付渠道屬性值 。 |
paid optional boolean | 是否已付款。 |
refunded optional boolean | 是否存在退款信息,無論退款是否成功。 |
page optional integer | 頁碼,取值范圍:1~100000000。默認為 "1"。 |
per_page optional integer | 每頁數量,取值范圍:1~100,默認為 "10"。 |
返回
返回一個 charge
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/orders/{ORDER_ID}/charges
curl https://api.pingxx.com/v1/orders/2001608270000004421/charges \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"object": "list",
"url": "/v1/charges",
"has_more": false,
"data": [
{
"id": "ch_1Kyn50DyjXbHbvnv5SGK4qDK",
"object": "charge",
"created": 1502695440,
"livemode": false,
"paid": false,
"refunded": false,
"reversed": false,
"app": "app_1Gqj58ynP0mHeX1q",
"channel": "alipay_qr",
"order_no": "2017081400000006",
"client_ip": "127.0.0.1",
"amount": 800,
"amount_settle": 800,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra": {},
"time_paid": null,
"time_expire": 1502781019,
"time_settle": null,
"transaction_no": null,
"refunds": null,
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": {},
"credential": {
"object": "credential",
"alipay_qr": "http://sissi.pingxx.com/mock.php?ch_id=ch_1Kyn50DyjXbHbvnv5SGK4qDK&channel=alipay_qr"
},
"description": null
}
]
}
該類型的 Event 對象會在 order
對象訂單付款完成后觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL 。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
order.succeeded | 商品訂單對象,訂單付款完成時觸發。 |
order.refunded | 商品訂單退款對象,訂單退款成功時觸發。 |
通過訂單退款接口對已經支付的 order
對象進行退款。
注意:用戶在使用訂單時,可能會出現以下異常情況,你需要根據實際情況進行退款處理:
order
對象的 status
值為 canceled
,paid
值為 true
,amount_paid
等于 actual_amount
。order
對象中的 amount_paid
大于 actual_amount
。屬性詳見 退款。
{
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 9,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Refund Description",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425284",
"funding_source": null,
"extra": {}
}
通過發起一次退款請求創建一個新的 refund
對象,只能對已經發生付款并且沒有全額退款的 order
對象發起退款。當進行全額退款之前,可以進行多次退款,直至全額退款。每次退款成功后,會發送 Webhooks 通知。
訂單退款支持以下功能:
charge
進行部分或全額退款。charge
進行全額退款。請求參數 | 描述 |
---|---|
ORDER_ID required string | 需要退款的
order
對象的
id
,該參數僅需要填寫在請求地址內。 |
charge optional string | 需要退款的
charge
對象的
id
,不填表示對所有包含的
charge
對象全額退款。 |
charge_amount optional int | 退款金額,單位分。必須小于等于可退款金額,默認為全額退款。僅當填寫
charge
參數時有效,表示對此
charge
對象進行退款的金額。 |
description required string | 退款詳情,最多 255 個 Unicode 字符。針對
cmb_wallet
&
cmb_pc_qr
渠道最多支持 99 字節;針對
jdpay_wap
渠道最多支持 128 字節。 |
refund_mode optional string | 退款方式。原路退回:
to_source
,退至余額:
to_balance
。默認為原路返回。如果對渠道為
balance
的
charge
對象退款,兩者效果相同。 |
funding_source optional string | 微信及 QQ 類退款資金來源。取值范圍:
unsettled_funds
:使用未結算資金退款;
recharge_funds
:微信-使用可用余額退款,QQ-使用可用現金賬戶資金退款。注:默認值
unsettled_funds
,該參數對于微信渠道的退款來說僅適用于微信老資金流商戶使用,包括
wx
、
wx_pub
、
wx_pub_qr
、
wx_lite
、
wx_wap
、
wx_pub_scan
六個渠道;新資金流退款資金默認從基本賬戶中扣除。該參數僅在請求退款,傳入該字段時返回。 |
royalty_users optional list | 退分潤的用戶信息列表。不填默認退還所有可退分潤,否則需要填寫所有分潤的用戶信息。使用分潤模板的訂單不需要填寫此參數。具體可參考下表。 |
metadata optional hash | 詳見 元數據 。 |
royalty_users 參數 |
描述 |
---|---|
user required string | 退分潤的
user
對象的
id
。 |
amount_refunded optional int | 退分潤的金額,單位為分;不退分潤時填 "0"。 默認退還所有可退分潤。 |
返回
返回一個 order
對象列表,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/orders/{ORDER_ID}/order_refunds
curl https://api.pingxx.com/v1/orders/2111608270000005209/order_refunds \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"description":"test-refund"
}'
{
"object": "list",
"url": "/v1/charges/2111608270000005209/order_refunds",
"has_more": false,
"data": [
{
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 800,
"created": 1499930518,
"succeed": true,
"status": "succeeded",
"time_succeed": 1499930518,
"description": "Refund Description",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_8SCSCCn90ir1bb54m5fjbnX5",
"charge_order_no": "2017071102122327",
"transaction_no": "2004450349201512090096425284",
"extra": {}
}
]
}
通過訂單 refund
對象的 id
查詢一個已創建的 refund
對象。
請求參數 | 描述 |
---|---|
ORDER_ID required string | order
對象的
id
,該參數僅需要填寫在請求地址內。 |
REFUND_ID required string | refund
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 refund
退款對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/orders/{ORDER_ID}/order_refunds/{REFUND_ID}
curl https://api.pingxx.com/v1/orders/2111608270000005209/order_refunds/re_y1u944PmfnrTHyvnL0nD0iD1 \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "re_y1u944PmfnrTHyvnL0nD0iD1",
"object": "refund",
"order_no": "y1u944PmfnrTHyvnL0nD0iD1",
"amount": 9,
"created": 1409634160,
"succeed": true,
"status": "succeeded",
"time_succeed": 1409634192,
"description": "Refund Description",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425284",
"funding_source": null,
"extra": {}
}
返回之前創建過訂單 refund
對象的一個列表。列表是按創建時間進行排序,總是將最新的訂單 refund
對象顯示在最前。
請求參數 | 描述 |
---|---|
ORDER_ID required string | 需要查詢的
order
對象的
id
,該參數僅需要填寫在請求地址內。 |
page optional int | 頁碼,默認值為 "1",取值范圍(1~100000000)。 |
per_page optional int | 每頁數量,默認值為 "10",取值范圍(1~100)。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 refund
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/orders/{ORDER_ID}/order_refunds
curl https://api.pingxx.com/v1/orders/2111608270000005209/order_refunds \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"object": "list",
"url": "/v1/orders/2111608270000005209/order_refunds",
"has_more": false,
"data": [
{
"id": "re_TmbvDKHiXLCSG0mnj9jnDyjA",
"object": "refund",
"order_no": "TmbvDKHiXLCSG0mnj9jnDyjA",
"amount": 100,
"created": 1410835214,
"succeed": true,
"status": "succeeded",
"time_succeed": 1410835652,
"description": "Refund Description",
"failure_code": null,
"failure_msg": null,
"metadata": {},
"charge": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"charge_order_no": "123456789",
"transaction_no": "2004450349201512090096425284",
"extra": {}
}
]
}
該類型的 Event 對象會在 Order 對象退款(部分或全額)成功后觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL 。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
order.refunded | 商品訂單 Order 對象,訂單退款成功時觸發。 |
在向用戶發放優惠券之前,需要通過 coupon_template
對象創建優惠券模板(領取中心的"優惠券"),優惠券模板記錄了優惠券的折扣規則和有效期等信息。
屬性 | 描述 |
---|---|
id string | 優惠券模板對象 ID,由 Ping++ 生成。 |
object string | 值為
coupon_template
。 |
app string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
livemode boolean | 是否處于 live 模式。 |
created int | 優惠券模板創建時間,用 Unix 時間戳表示。 |
name string | 優惠券模板名稱。 |
type int | 優惠券模板的類型。取值包括 "1":現金券、"2":折扣券。 |
amount_off int | 折扣金額,在 type 為 1 時必傳,取值范圍 1~1000000000。 |
percent_off int | 折扣百分比,在 type 為 2 時必傳。例如值為 "20" 表示 8 折,值為 "100" 表示免費。 |
discount_amount_limit int | 折扣上限,僅在 type 為 2 時生效。比如折扣上限為 20 元,當使用 8 折優惠券,訂單金額為 200 元時,最高只可折扣 20 元,而非 40 元。 |
amount_available int | 訂單金額大于等于該值時,優惠券有效(用于設置滿減券)。"0" 表示無限制。 |
max_circulation int | 優惠券最大生成數量,當已生成數量達到最大值時,不能再生成優惠券;取值范圍為 1 - 1000000。不填時默認為 null,表示可以無限生成。 |
max_user_circulation int | 單個用戶優惠券最大生成數量,當已生成數量達到最大值時,不能再生成優惠券,刪除優惠券不會影響該值;取值范圍為 1 - 100,默認值為 1。 |
refundable boolean | 訂單全額退款時是否退還優惠券。 |
expiration hash | 通過該優惠券模板創建的優惠券有效期規則,詳見下方 expiration 參數說明 。 |
times_circulated int | 優惠券生成數量。 |
times_redeemed int | 優惠券核銷數量。 |
metadata hash | 詳見 元數據 。 |
expiration 參數說明 | |
---|---|
time_start string | 優惠券可用的開始時間,用 Unix 時間戳表示。 |
time_end string | 優惠券可用的結束時間,用 Unix 時間戳表示。 |
duration int | 優惠券創建后的過期時間,單位為秒。不能和
time_start
、
time_end
同時使用。 |
{
"id": "300116082415452100000700",
"object": "coupon_template",
"app": "APP_ID",
"amount_available": 10000,
"amount_off": 25,
"created": 1470904889,
"expiration": null,
"livemode": false,
"max_circulation": 1000,
"max_user_circulation":1,
"metadata": {
},
"name": "25OFF",
"percent_off": null,
"refundable": true,
"times_circulated": 0,
"times_redeemed": 0,
"type": 1
}
調用該接口創建一個 coupon_template
對象。優惠券模板不能直接使用,需要根據模板在用戶下創建優惠券后在訂單中使用。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
type required int | 優惠券模板的類型。取值包括 "1":現金券、"2":折扣券。 |
name optional string | 優惠券模板名稱,1~64 位。 |
amount_off optional int | 折扣金額,在 type 為 1 時必傳,取值范圍 1~1000000000。 |
percent_off optional int | 折扣百分比,在 type 為 2 時必傳。例如值為 "20" 表示 8 折,值為 "100" 表示免費。 |
amount_available optional int | 訂單金額大于等于該值時,優惠券有效(用于設置滿減券)。取值范圍 0~1000000000。默認值為 "0",表示無限制。 |
discount_amount_limit optional,int | 折扣上限,僅在 type 為 2 時生效。比如折扣上限為 20 元,當使用 8 折優惠券,訂單金額為 200 元時,最高只可折扣 20 元,而非 40 元。 |
max_circulation optional int | 優惠券最大生成數量,當已生成數量達到最大值時,不能再生成優惠券;取值范圍為 1 - 1000000。不填時默認為 null,表示可以無限生成。 |
max_user_circulation optional int | 單個用戶優惠券最大生成數量,當已生成數量達到最大值時,不能再生成優惠券,刪除優惠券不會影響該值;取值范圍為 1 - 100,默認值為 1。 |
metadata optional hash | 詳見 元數據 。 |
expiration optional hash | 通過該優惠券模板創建的優惠券有效期規則,詳細請參考下方 expiration 參數說明 。 |
refundable optional bool | 訂單全額退款時是否退還優惠券。默認值為
true
。 |
expiration 參數說明 | 描述 |
---|---|
time_start optional string | 優惠券可用的開始時間,用 Unix 時間戳表示。 |
time_end optional string | 優惠券可用的結束時間,用 Unix 時間戳表示。 |
duration optional int | 優惠券創建后的過期時間,單位為秒。不能和
time_start
、
time_end
同時使用。 |
返回
返回一個 coupon_template
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates
curl https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"name": "25OFF",
"type": 1,
"percent_off": 25,
"amount_available": 10000,
"max_circulation": 1000,
"metadata": {
},
"expiration": null
}'
{
"id": "300116082415452100000700",
"object": "coupon_template",
"app": "APP_ID",
"amount_available": 10000,
"amount_off": 25,
"created": 1470904889,
"expiration": null,
"livemode": false,
"max_circulation": 1000,
"max_user_circulation":1,
"metadata": {
},
"name": "25OFF",
"percent_off": null,
"refundable": true,
"times_circulated": 0,
"times_redeemed": 0,
"type": 1
}
通過 coupon_template
對象的 id
查詢一個已創建的 coupon_template
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
COUPON_TMPL_ID required string | coupon_template
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 coupon_template
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates/{COUPON_TMPL_ID}
curl https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates/300116082415452100000700 \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
{
"id": "300116082415452100000700",
"object": "coupon_template",
"app": "APP_ID",
"amount_available": 10000,
"amount_off": 25,
"created": 1470904889,
"expiration": null,
"livemode": false,
"max_circulation": 1000,
"max_user_circulation":1,
"metadata": {
},
"name": "25OFF",
"percent_off": null,
"times_circulated": 0,
"times_redeemed": 0,
"type": 1
}
返回之前創建過 coupon_template
對象的一個列表。列表是按創建時間進行排序,總是將最新的 coupon_template
對象顯示在最前。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
page optional timestamp | 頁碼,默認值為 "1",取值范圍:1-100000000。 |
per_page optional timestamp | 每頁數量,默認值為 "20",取值范圍:1-100。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 coupon_template
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates
curl https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/{APP_ID}/coupon_templates", "has_more": true, "data": [ { "id": "300116082415452100000700", "object": "coupon_template", "app": "APP_ID", "amount_available": 10000, "amount_off": 25, "created": 1470904889, "expiration": null, "livemode": false, "max_circulation": 1000, "max_user_circulation":1, "metadata": { }, "name": "25 OFF", "percent_off": null, "refundable": true, "times_circulated": 0, "times_redeemed": 0, "type": 1 }, { "id": "300116082416033500000800", "object": "coupon_template", "app": "APP_ID", "amount_available": 10000, "amount_off": null, "created": 1472025815, "expiration": null, "livemode": false, "max_circulation": 2000, "max_user_circulation":1, "metadata": { }, "name": "30% OFF", "percent_off": 30, "refundable": true, "times_circulated": 0, "times_redeemed": 0, "type": 2 }, {...}, {...} ] }
使用該接口更新 coupon_template
對象的信息。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
COUPON_TMPL_ID required string | coupon_template
對象的
id
,該參數僅需要填寫在請求地址內。 |
metadata optinoal hash | 詳見 元數據 。 |
返回
返回一個 coupon_template
對象,或者返回一個錯誤,詳見 錯誤。
PUT https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates/{COUPON_TMPL_ID}
curl https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"metadata": {
"key": "value"
}
}'
{
"id": "300116082415452100000700",
"object": "coupon_template",
"app": "APP_ID",
"amount_available": 10000,
"amount_off": 25,
"created": 1470904889,
"expiration": null,
"livemode": false,
"max_circulation": 1000,
"max_user_circulation":1,
"metadata": {
"key": "value"
},
"name": "25 OFF",
"percent_off": null,
"refundable": true,
"times_circulated": 0,
"times_redeemed": 0,
"type": 1
}
調用此接口實現對 coupon_template
對象的刪除。優惠券模板刪除后,通過該優惠券模板生成優惠券仍然可以被查詢,但不可以被使用(核銷)。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
COUPON_TMPL_ID required string | coupon_template
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 JSON 格式的刪除信息,或者返回一個錯誤,詳見 錯誤。
DELETE https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates/{COUPON_TMPL_ID}
DELETE https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates/{COUPON_TMPL_ID} \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"deleted": true,
"id": "COUPON_TMPL_ID"
}'
{
"deleted": true,
"id": "COUPON_TMPL_ID"
}
通過一個 coupon_template
對象在指定用戶下創建一個 coupon
對象用于生成一張優惠券,coupon
對象的有效時間根據關聯的 coupon_template
對象由系統自動計算得出,可以在有效時間內在訂單創建時使用。
屬性 | 描述 |
---|---|
id string | 優惠券對象 ID,由 Ping++ 生成。 |
object string | 值為 "coupon"。 |
app string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
created int | 創建時間,用 Unix 時間戳表示。 |
livemode boolean | 是否處于 live 模式。 |
valid boolean | 是否可用。優惠券過期、優惠券已使用、關聯的優惠券模板刪除會使該優惠券變為不可用。 |
redeemed boolean | 是否已經使用(核銷)。 |
coupon_template hash | 關聯的
coupon_template
對象。 |
user string | user
對象的
id
。 |
time_start timestamp | 可用的開始時間,用 Unix 時間戳表示。 |
time_end timestamp | 可用的結束時間,用 Unix 時間戳表示。 |
order string | 關聯
order
對象的
id
。使用后生效。 |
actual_amount int | 關聯
order
對象的應付金額,單位為分。使用后生效。 |
user_times_circulated int | 優惠券在該用戶下當前生成次數。 |
metadata hash | 詳見 元數據 。 |
{
"id": "COUPON_ID",
"object": "coupon",
"app": "APP_ID",
"actual_amount": null,
"coupon_template": {
"id": "300116082415452100000700",
"object": "coupon_template",
"app": "APP_ID",
"amount_available": 10000,
"amount_off": 25,
"created": 1470904889,
"expiration": null,
"livemode": false,
"max_circulation": 1000,
"metadata": {
},
"name": "25 OFF",
"percent_off": null,
"refundable": true,
"times_circulated": 0,
"times_redeemed": 0,
"type": 1
},
"created": 1470969003,
"livemode": false,
"metadata": {
},
"order": null,
"user_times_circulated":1,
"redeemed": false,
"time_end": 1472265014,
"time_start": 1470969010,
"user": "USER_ID",
"valid": true
}
通過 coupon_template
對象的 id
在一個用戶下生成一個 coupon
對象,實現由服務端發放優惠券,或者由用戶領取優惠券。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | user
對象的
id
,該參數僅需要填寫在請求地址內。 |
coupon_template required string | coupon_template
對象的
id
。 |
metadata optional hash | 詳見 元數據 。 |
返回
返回一個 coupon
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/coupons
POST https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/coupons \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"coupon_template": "coupon_template_id"
}'
{
"id": "COUPON_ID",
"object": "coupon",
"app": "APP_ID",
"actual_amount": null,
"coupon_template": {
"id": "300116082415452100000700",
"object": "coupon_template",
"app": "APP_ID",
"amount_available": 10000,
"amount_off": 25,
"created": 1470904889,
"expiration": null,
"livemode": false,
"max_circulation": 1000,
"metadata": {
},
"name": "25 OFF",
"percent_off": null,
"refundable": true,
"times_circulated": 0,
"times_redeemed": 0,
"type": 1
},
"created": 1470969003,
"livemode": false,
"metadata": {
},
"order": null,
"user_times_circulated":1,
"redeemed": false,
"time_end": 1472265014,
"time_start": 1470969010,
"user": "USER_ID",
"valid": true
}
通過 coupon_template
對象的 id
批量在多個用戶下各生成一張優惠券。一般由服務端主動觸發(批量發放)。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
COUPON_TMPL_ID required string | coupon_template
對象的
id
,該參數僅需要填寫在請求地址內。 |
users required list | user
對象的
id
列表。 |
metadata optional hash | 詳見 元數據 。 |
返回
返回一個 coupon
對象列表,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates/{COUPON_TMPL_ID}/coupons
POST https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates/{COUPON_TMPL_ID}/coupons \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"users": [
"user_id_1",
"user_id_2",
"user_id_3"
]
}'
{
"object": "list",
"url": "/v1/apps/APP_ID/coupon_templates/COUPON_TMPL_ID/coupons",
"has_more": false,
"data": [
{
"id": "300418080916580200113202",
"object": "coupon",
"app": "APP_ID",
"actual_amount": 0,
"coupon_template": {
"id": "300218051415370500016201",
"object": "coupon_template",
"app": "APP_ID",
"amount_available": 0,
"amount_off": null,
"created": 1526283425,
"expiration": {
"time_start": null,
"time_end": null,
"duration": null
},
"livemode": true,
"max_circulation": null,
"max_user_circulation": 100,
"metadata": {
"custom_key": "custom_value"
},
"name": "9 折券 - 最高減 10 元",
"percent_off": 10,
"times_circulated": 4,
"times_redeemed": 0,
"type": 2,
"refundable": true
},
"created": 1533805082,
"livemode": true,
"metadata": {},
"order": null,
"redeemed": false,
"time_end": null,
"time_start": null,
"user": "user_id_1",
"valid": true,
"user_times_circulated": 0
},
{
"id": "300418080916580200113302",
"object": "coupon",
"app": "APP_ID",
"actual_amount": 0,
"coupon_template": {
"id": "300218051415370500016201",
"object": "coupon_template",
"app": "APP_ID",
"amount_available": 0,
"amount_off": null,
"created": 1526283425,
"expiration": {
"time_start": null,
"time_end": null,
"duration": null
},
"livemode": true,
"max_circulation": null,
"max_user_circulation": 100,
"metadata": {
"custom_key": "custom_value"
},
"name": "9 折券 - 最高減 10 元",
"percent_off": 10,
"times_circulated": 4,
"times_redeemed": 0,
"type": 2,
"refundable": true
},
"created": 1533805082,
"livemode": true,
"metadata": {},
"order": null,
"redeemed": false,
"time_end": null,
"time_start": null,
"user": "user_id_2",
"valid": true,
"user_times_circulated": 0
}
]
}
通過 coupon
對象的 id
查詢一個已創建的 coupon
對象。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | user
對象的
id
,該參數僅需要填寫在請求地址內。 |
COUPON_ID required string | coupon
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 coupon
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/coupons/{COUPON_ID}
curl https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/coupons/{COUPON_ID} \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "coupon_id",
"object": "coupon",
"app": "APP_ID",
"actual_amount": null,
"coupon_template": {
"id": "300116082415452100000700",
"object": "coupon_template",
"app": "APP_ID",
"amount_available": 10000,
"amount_off": 25,
"created": 1470904889,
"expiration": null,
"livemode": false,
"max_circulation": 1000,
"metadata": {
},
"name": "25 OFF",
"percent_off": null,
"refundable": true,
"times_circulated": 0,
"times_redeemed": 0,
"type": 1
},
"created": 1470969003,
"livemode": false,
"metadata": {
"key": "value"
},
"order": null,
"user_times_circulated":1,
"redeemed": false,
"time_end": 1472265014,
"time_start": 1470969003,
"user": "user_id",
"valid": true
}
根據 user
對象的 id
查詢該用戶下的已創建的 coupon
對象列表。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | user
對象的
id
,該參數僅需要填寫在請求地址內。 |
amount optional int | 訂單的原始金額,單位為分。傳入該值可以在返回值
actual_amount
得到訂單使用優惠券之后的金額。 |
redeemed optional boolean | 優惠券是否已使用(核銷)。 |
expired optional boolean | 優惠券是否已過期。 |
page optional int | 頁碼,默認值為 "1",取值范圍:1-100000000。 |
per_page optional int | 每頁數量,默認值為 "20", |
created [ gt ] optional int | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional int | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional int | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional int | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 coupon
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/coupons
curl https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/coupons \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/APP_ID/users/USER_ID/coupons", "has_more": true, "data": [ { "id": "300418051415375100031000", "object": "coupon", "app": "APP_ID", "actual_amount": 0, "coupon_template": { "id": "300218051415370500016000", "object": "coupon_template", "app": "APP_ID", "amount_available": 0, "amount_off": null, "created": 1526283425, "expiration": { "time_start": null, "time_end": null, "duration": null }, "livemode": true, "max_circulation": null, "max_user_circulation": 100, "metadata": { "custom_key": "custom_value" }, "name": "9 折券 - 最高減 10 元", "percent_off": 10, "times_circulated": 2, "times_redeemed": 0, "type": 2, "refundable": true }, "created": 1526283471, "livemode": true, "metadata": {}, "order": null, "redeemed": false, "time_end": null, "time_start": null, "user": "USER_ID", "valid": true, "user_times_circulated": 1 }, { "id": "300418051415332500033701", "object": "coupon", "app": "APP_ID", "actual_amount": 0, "coupon_template": { "id": "300218051009364200014001", "object": "coupon_template", "app": "APP_ID", "amount_available": 0, "amount_off": null, "created": 1525916202, "expiration": { "time_start": null, "time_end": null, "duration": null }, "livemode": true, "max_circulation": null, "max_user_circulation": 100, "metadata": { "custom_key": "custom_value" }, "name": "9 折券 - 最高減 10 元", "percent_off": 10, "times_circulated": 1, "times_redeemed": 0, "type": 2, "refundable": true }, "created": 1526283205, "livemode": true, "metadata": {}, "order": null, "redeemed": false, "time_end": null, "time_start": null, "user": "USER_ID", "valid": false, "user_times_circulated": 1 }, {……} ] }
根據 coupon_template
對象的 id
查詢通過該優惠券模板生成的 coupon
對象列表。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
COUPON_TMPL_ID required string | coupon_template
對象的
id
,該參數僅需要填寫在請求地址內。 |
amount optional int | 訂單的原始金額,單位為分。傳入該值可以在返回值
actual_amount
得到訂單使用優惠券之后的金額。 |
redeemed optional boolean | 優惠券是否已使用(核銷)。 |
page optional int | 頁碼,默認值為 "1"。 |
per_page optional int | 每頁數量,默認值為 "20"。 |
created [ gt ] optional int | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional int | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional int | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional int | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 coupon
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates/{COUPON_TMPL_ID}/coupons
curl https://api.pingxx.com/v1/apps/{APP_ID}/coupon_templates/{COUPON_TMPL_ID}/coupons \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/apps/APP_ID/coupon_templates/COUPON_TMPL_ID/coupons", "has_more": false, "data": [ { "id": "300418080909525500089000", "object": "coupon", "app": "APP_ID", "actual_amount": 0, "coupon_template": { "id": "300218051415370500016000", "object": "coupon_template", "app": "APP_ID", "amount_available": 0, "amount_off": null, "created": 1526283425, "expiration": { "time_start": null, "time_end": null, "duration": null }, "livemode": true, "max_circulation": null, "max_user_circulation": 100, "metadata": { "custom_key": "custom_value" }, "name": "9 折券 - 最高減 10 元", "percent_off": 10, "times_circulated": 2, "times_redeemed": 0, "type": 2, "refundable": true }, "created": 1533779575, "livemode": true, "metadata": {}, "order": "2011808090001814571", "redeemed": false, "time_end": null, "time_start": null, "user": "0", "valid": false, "user_times_circulated": 1 }, {……} ] }
使用該接口更新 coupon
對象的信息。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | user
對象的
id
,該參數僅需要填寫在請求地址內。 |
COUPON_ID required string | coupon
對象的
id
,該參數僅需要填寫在請求地址內。 |
metadata optional hash | 詳見 元數據 。 |
返回
返回一個 coupon
對象,或者返回一個錯誤,詳見 錯誤。
PUT https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/coupons/{COUPON_ID}
POST https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/coupons/{COUPON_ID} \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"metadata": {
"key": "value"
}
}'
{
"id": "coupon_id",
"object": "coupon",
"app": "APP_ID",
"actual_amount": null,
"coupon_template": {
"id": "300116082415452100000700",
"object": "coupon_template",
"app": "APP_ID",
"amount_available": 10000,
"amount_off": 25,
"created": 1470904889,
"expiration": null,
"livemode": false,
"max_circulation": 1000,
"metadata": {
},
"name": "25 OFF",
"percent_off": null,
"refundable": true,
"times_circulated": 0,
"times_redeemed": 0,
"type": 1
},
"created": 1470969003,
"livemode": false,
"metadata": {
"key": "value"
},
"order": null,
"user_times_circulated":1,
"redeemed": false,
"time_end": 1472265014,
"time_start": 1470969003,
"user": "user_id",
"valid": true
}
調用此接口實現對 coupon
對象的刪除,一般由用戶在客戶端觸發此行為。可以對未使用、已過期和已使用的優惠券進行刪除。
請求參數 | 描述 |
---|---|
APP_ID required string | 對應
app
對象的
id
,該參數僅需要填寫在請求地址內,查看
如何獲取App ID
。 |
USER_ID required string | user
對象的
id
,該參數僅需要填寫在請求地址內。 |
COUPON_ID required string | coupon
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 JSON 格式的刪除信息,或者返回一個錯誤,詳見 錯誤。
DELETE https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/coupons/{COUPON_ID}
curl https://api.pingxx.com/v1/apps/{APP_ID}/users/{USER_ID}/coupons/{COUPON_ID} \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"deleted": true,
"id": "COUPON_ID"
}'
{
"deleted": true,
"id": "COUPON_ID"
}
royalty
對象在訂單付款完成或退款完成后由 Ping++ 自動生成,根據訂單中的分潤信息或分潤模板生成的清分數據。royalty
對象會在分潤發起方和分潤接收方關聯的 app
下同時生成。royalty
對象中,分潤發起方的 amount 為負值,分潤接收方的 amount 為正值。
注:此接口需要使用創建 Order 時收款方(receipt_app
)的APIKey
和私鑰請求 API 接口
屬性 | 描述 |
---|---|
id string | 分潤對象 ID ,由 Ping++ 生成。 |
object string | 值為 "royalty"。 |
payer_app string | 分潤發起方對應的
app
對象的
id
。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
livemode boolean | 是否處于 live 模式。 |
status string | 分潤狀態。值為
created
:入賬、
pending
:結算發起、
waiting
:結算匯總、
succeeded
:結算成功。 |
amount integer | 分潤金額,單位為分。數值帶符號,其中負值表示支出、正值表示收入。 |
method string | 分潤方式。目前支持渠道:
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯)、
allinpay
(通聯)和
jdpay
(京東)、
balance
(余額),以及
manual
(手動標記)。 |
recipient_app string | 分潤接收方的
app
對象的
id
。 |
royalty_transaction string | 關聯的
royalty_transaction
對象的
id
。 |
royalty_settlement string | 關聯的
royalty_settlement
對象的
id
。 |
time_settled string | 結算成功時間,用 Unix 時間戳表示。 |
settle_account string | 關聯的
settle_account
對象的
id
,表示該分潤結算對應用戶結算賬戶。 |
source_app string | 平臺的
app
對象的
id
。 |
source_url string | 關聯對象的請求地址,目前支持
order
對象,例如:"/v1/orders/{ORDER_ID}"。 |
source_no string | 關聯對象的
order_no
。 |
source_user string | 分潤接收方
user
對象的
id
。 |
description string | 附加說明,最多 255 個 Unicode 字符。 |
metadata optional | 詳見 元數據 。 |
{ "object": "list", "url": "/v1/royalties", "has_more": false, "data": [ { "id": "170301124238000111", "object": "royalty", "payer_app": "app_1Gqj58ynP0mHeX1q", "amount": -1, "created": 1488343358, "description": "Your description", "livemode": true, "metadata": {}, "method": "manual", "recipient_app": null, "royalty_transaction": null, "royalty_settlement": null, "source_app": "app_1Gqj58ynP0mHeX1q", "source_no": "12345678", "source_url": "/v1/orders/2011609010000025991", "source_user": "user_001", "status": "succeeded", "settle_account": null, "time_settled": 1488465301 }, {...}, {...} ] }
通過 royalty
對象的 id
列表批量更新多個已創建的 royalty
對象的信息,包括修改描述信息和標記結算功能。
請求參數 | 描述 |
---|---|
ids list required | royalty
對象的
id
列表。 |
method string optional | 支持手動標記結算:
manual
,或取消手動標記結算:
null
。 |
description string optional | 附加說明,最多 255 個 Unicode 字符。 |
metadata hash optional | 詳見 元數據 。 |
返回
返回一個 royalty
對象列表,或者返回一個錯誤,詳見 錯誤。
PUT https://api.pingxx.com/v1/royalties/
curl https://api.pingxx.com/v1/royalties \
-X PUT \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-H "Content-Type: application/json" \
-d '{
"ids": ["170301124238000111"],
"method": "manual",
"description": "Your description"
}'
{ "object": "list", "url": "/v1/royalties", "has_more": false, "data": [ { "id": "170301124238000111", "object": "royalty", "payer_app": "app_1Gqj58ynP0mHeX1q", "amount": -1, "created": 1488343358, "description": "Your description", "livemode": true, "metadata": {}, "method": "manual", "recipient_app": null, "royalty_transaction": null, "royalty_settlement": null, "source_app": "app_1Gqj58ynP0mHeX1q", "source_no": "12345678", "source_url": "/v1/orders/2011609010000025991", "source_user": "user_001", "status": "succeeded", "settle_account": null, "time_settled": 1488465301 }, {...}, {...} ] }
通過 royalty
對象的 id
更新一個已創建的 royalty
對象的信息。
請求參數 | 描述 |
---|---|
ROYALTY_ID string required | royalty
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 royalty
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/royalties/{ROYALTY_ID}
curl https://api.pingxx.com/v1/royalties/{ROYALTY_ID} \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "170301124238000111",
"object": "royalty",
"payer_app": "app_1Gqj58ynP0mHeX1q",
"amount": -1,
"created": 1488343358,
"description": "Your description",
"livemode": true,
"metadata": {},
"method": null,
"recipient_app": null,
"royalty_transaction": null,
"royalty_settlement": null,
"source_app": "app_1Gqj58ynP0mHeX1q",
"source_no": "12345678",
"source_url": "/v1/orders/2011609010000025991",
"source_user": "user_001",
"status": "created",
"settle_account": null,
"time_settled": null
}
返回之前創建過 royalty
對象的一個列表。列表是按創建時間進行排序,總是將最新的 royalty
對象顯示在最前。
請求參數 | 描述 |
---|---|
payer_app string optional | 分潤發起方對應的
app
對象的
id
。 |
recipient_app string optional | 分潤接收方
user
關聯的
app
對象的
id
。 |
source_app string optional | 平臺的
app
對象的
id
。 |
source_no string optional | 關聯訂單對象的
merchant_order_no
,用于獲取指定訂單所有的分潤和退分潤對象。不能和 source_nos 同時使用。 |
source_nos array optional | 關聯訂單對象的
merchant_order_no
列表,用于獲取指定訂單所有的分潤和退分潤對象。最多可填寫 200 個元素。不能和
source_no
同時使用。 |
source_user string optional | 分潤接收方
user
對象的
id
。 |
status string optional | 分潤狀態。值為
created
:入賬、
pending
:結算發起、
waiting
:結算匯總、
succeeded
:結算成功。 |
royalty_settlement string optional | 關聯的
royalty_settlement
對象的
id
。 |
royalty_transaction string optional | 關聯的
royalty_transaction
對象的
id
。 |
page integer optional | 頁碼,默認值為 "1",取值范圍(1~100000000)。 |
per_page optional integer | 每頁數量,默認值為 "10"。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 royalty
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/royalties
curl https://api.pingxx.com/v1/royalties \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/royalties", "has_more": false, "data": [ { "id": "170301124238000111", "object": "royalty", "payer_app": "app_1Gqj58ynP0mHeX1q", "amount": -1, "created": 1488343358, "description": "Your description", "livemode": true, "metadata": {}, "method": "manual", "recipient_app": null, "royalty_transaction": null, "royalty_settlement": null, "source_app": "app_1Gqj58ynP0mHeX1q", "source_no": "12345678", "source_url": "/v1/orders/2011609010000025991", "source_user": "user_001", "status": "succeeded", "settle_account": null, "time_settled": 1488465301 }, {...}, {...} ] }
通過創建 royalty_template
對象來設置一個分潤模板。分潤模板定義了分潤的規則,在創建 order
時傳入 royalty_template
對象的 id
,在訂單付款完成和退款完成時,Ping++ 會根據模板的規則計算分潤的用戶和金額完成清分。
分潤模板依賴于訂單層級鏈,只能給層級鏈上的商戶分潤。如果分潤規則復雜或者需要給個人用戶分潤,則分潤模板不適用。
屬性 | 描述 |
---|---|
id string | 分潤模板對象 ID,由 Ping++ 生成。 |
object string | 值為
royalty_template
。 |
app string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
name string | 分潤模板名稱,允許中英文等常用字符,取值范圍 2~50 位。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
rule [ royalty_mode ] string | 分潤模式。值為
rate
表示按訂單金額(包含優惠券金額)比例計算;值為
fixed
表示按固定金額收取分潤。 |
rule [ refund_mode ] string | 退分潤模式。值為
no_refund
表示不退分潤;值為
proportional
表示按退款占支付的比例退分潤;值為
full_refund
表示一旦退款成功分潤全退。 |
rule [ allocation_mode ] string | 分配模式。表示當訂單確定的層級如果少于模板配置層級時,模板中計算出的多余分潤金額是歸屬于收款方:
receipt_reserved
或服務方:
service_reserved
。 |
rule [ data ] list | 分潤數據列表,詳見下方
rule[data]
列表屬性說明。 |
description string | 附加說明,最多 100 個 Unicode 字符。 |
rule[data] 列表屬性 | 描述 |
---|---|
level integer | 商戶層級,值為 0~5,其中 "0" 表示平臺。 |
value integer | 分潤數值。
royalty_mode
為
rate
時,取值范圍 0~10000,單位為 0.01%;
royalty_mode
為
fixed
時,取值范圍 0~1000000,單位為分。 |
通過創建 royalty_template
對象來設置一個分潤模板。
請求參數 | 描述 |
---|---|
app required string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
rule [ royalty_mode ] required string | 分潤模式。值為
rate
表示按訂單金額(包含優惠券金額)比例計算;值為
fixed
表示按固定金額收取分潤。 |
rule [ refund_mode ] required string | 退分潤模式。值為
no_refund
表示不退分潤;值為
proportional
表示按退款占支付的比例退分潤;值為
full_refund
表示一旦退款成功分潤全退。 |
rule [ allocation_mode ] required string | 分配模式。表示當訂單確定的層級如果少于模板配置層級時,模板中計算出的多余分潤金額是歸屬于收款方:
receipt_reserved
或服務方:
service_reserved
。 |
rule [ data ] required list | 分潤數據列表,詳見下方 rule[data] 列表參數說明 。 |
name optional string | 模板名稱,允許中英文等常用字符,取值范圍 2~50 位。 |
description optional string | 附加說明,最多 100 個 Unicode 字符。 |
rule[data] 列表參數 | 描述 |
---|---|
level required integer | 商戶層級,值為 0~5,其中 "0" 表示平臺。 |
value required integer | 分潤數值。
royalty_mode
為
rate
時,取值范圍 0~10000,單位為 0.01%;
royalty_mode
為
fixed
時,取值范圍 0~1000000,單位為分。 |
返回
返回一個 royalty_template
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/royalty_templates
curl https://api.pingxx.com/v1/royalty_templates \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"app": "app_1Gqj58ynP0mHeX1q",
"name": "royalty_templates name",
"rule": {
"royalty_mode": "rate",
"refund_mode": "no_refund",
"allocation_mode": "receipt_reserved",
"data": [
{
"level": 0,
"value": 11
},
{
"level": 1,
"value": 12
}
]
}
}
'
{
"id": "450170814144600001",
"object": "royalty_template",
"livemode": false,
"app": "app_1Gqj58ynP0mHeX1q",
"name": "royalty_templates name",
"created": 1502693202,
"description": null,
"rule": {
"royalty_mode": "rate",
"refund_mode": "no_refund",
"allocation_mode": "receipt_reserved",
"data": [
{
"level": 0,
"value": 11
},
{
"level": 1,
"value": 12
}
]
}
}
通過 royalty_template
對象的 id
查詢一個已創建的 royalty_template
對象。
請求參數 | 描述 |
---|---|
ROYALTY_TEMPLATE_ID required string | royalty_template
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 royalty_template
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/royalty_templates/{ROYALTY_TEMPLATE_ID}
curl https://api.pingxx.com/royalty_templates/v1/500307110543000111 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "450170814144900001",
"object": "royalty_template",
"livemode": false,
"app": "app_1Gqj58ynP0mHeX1q",
"name": "royalty_templates name2",
"created": 1502693391,
"description": null,
"rule": {
"royalty_mode": "rate",
"refund_mode": "no_refund",
"allocation_mode": "receipt_reserved",
"data": [
{
"level": 0,
"value": 11
},
{
"level": 1,
"value": 12
}
]
}
}
返回之前創建過 royalty_template
對象的一個列表。列表是按創建時間進行排序,總是將最新的 royalty_template
對象顯示在最前。
請求參數 | 描述 |
---|---|
app required string | 對應
app
對象的
id
,查看
如何獲取App ID
。 |
rule [ royalty_mode ] optional string | 分潤模式。值為
rate
表示按訂單金額(包含優惠券金額)比例計算;值為
fixed
表示按固定金額收取分潤。 |
rule [ refund_mode ] optional string | 退分潤模式。值為
no_refund
表示不退分潤;值為
proportional
表示按退款占支付的比例退分潤;值為
full_refund
表示一旦退款成功分潤全退。 |
rule [ allocation_mode ] optional string | 分配模式。表示當訂單確定的層級如果少于模板配置層級時,模板中多余的分潤金額是歸屬于服務方:
service_reserved
或收款方:
receipt_reserved
。 |
page optional integer | 頁碼,默認值為 "1",取值范圍(1~100000000)。 |
per_page optional integer | 每頁數量,默認值為 "10",取值范圍(1~100)。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 royalty_template
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/royalty_templates
curl https://api.pingxx.com/v1/royalty_templates \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/royalty_templates", "has_more": false, "data": [ { "id": "450170814144900001", "object": "royalty_template", "livemode": false, "app": "app_1Gqj58ynP0mHeX1q", "name": "royalty_templates name2", "created": 1502693391, "description": null, "rule": { "royalty_mode": "rate", "refund_mode": "no_refund", "allocation_mode": "receipt_reserved", "data": [ { "level": 0, "value": 11 }, { "level": 1, "value": 12 } ] } }, {...}, {...} ] }
通過 royalty_template
對象的 id
更新一個已創建的 royalty_template
對象的信息。
請求參數 | 描述 |
---|---|
ROYALTY_TEMPLATE_ID required string | royalty_template
對象的
id
,該參數僅需要填寫在請求地址內。 |
rule [ royalty_mode ] optional string | 分潤模式。值為
rate
表示按訂單金額(包含優惠券金額)比例計算;值為
fixed
表示按固定金額收取分潤。 |
rule [ refund_mode ] optional string | 退分潤模式。值為
no_refund
表示不退分潤;值為
proportional
表示按退款占支付的比例退分潤;值為
full_refund
表示一旦退款成功分潤全退。 |
rule [ allocation_mode ] optional string | 分配模式。表示當訂單確定的層級如果少于模板配置層級時,模板中計算出的多余分潤金額是歸屬于收款方:
receipt_reserved
或服務方:
service_reserved
。 |
rule [ data ] optional list | 分潤數據列表,詳見下方 rule[data] 列表參數說明 。 |
name optional string | 模板名稱,允許中英文等常用字符,取值范圍 2~50 位。 |
description optional string | 附加說明,最多 100 個 Unicode 字符。 |
rule[data] 列表參數 | 描述 |
---|---|
level required integer | 商戶層級,值為 0~5,其中 "0" 表示平臺。 |
value required integer | 分潤數值。
royalty_mode
為
rate
時,取值范圍 0~10000,單位為 0.01%;
royalty_mode
為
fixed
時,取值范圍 0~1000000,單位為分。 |
返回
返回一個 royalty_template
對象,或者返回一個錯誤,詳見 錯誤。
PUT https://api.pingxx.com/v1/royalty_templates/{ROYALTY_TEMPLATE_ID}
curl -X PUT https://api.pingxx.com/v1/royalty_templates/450170814144900001 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
-d '{
"name": "royalty_templates name new",
"rule": {
"royalty_mode": "rate",
"refund_mode": "proportional",
"allocation_mode": "service_reserved",
"data": [
{
"level": 1,
"value": 21
},
{
"level": 2,
"value": 30
}
]
}
}'
{
"id": "450170814144900001",
"object": "royalty_template",
"livemode": false,
"app": "app_1Gqj58ynP0mHeX1q",
"name": "royalty_templates name new",
"created": 1502693673,
"description": null,
"rule": {
"royalty_mode": "rate",
"refund_mode": "proportional",
"allocation_mode": "service_reserved",
"data": [
{
"level": 1,
"value": 21
},
{
"level": 2,
"value": 30
}
]
}
}
通過 royalty_template
對象的 id
刪除一個已創建的 royalty_template
對象。
請求參數 | 描述 |
---|---|
ROYALTY_TEMPLATE_ID required string | royalty_template
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 JSON 格式的刪除信息,或者返回一個錯誤,詳見 錯誤。
DELETE https://api.pingxx.com/v1/royalty_templates/{ROYALTY_TEMPLATE_ID}
curl -X DELETE https://api.pingxx.com/v1/royalty_templates/500307110543000111 \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"deleted": true,
"id": "500307110543000111"
}
分潤記錄產生之后,需要創建 royalty_settlement
對象來將分潤結算到接收分潤方的賬戶。royalty_settlement
對象創建后,會根據分潤接收方生成一個或多個 royalty_transaction
對象記錄每個分潤接收方的分潤情況,可以根據實際情況進行結算的確認或取消。
注:
receipt_app
)的APIKey
和私鑰請求 API 接口屬性 | 描述 |
---|---|
id string | 分潤結算對象 ID,由 Ping++ 生成。 |
object string | 值為 "royalty_settlement"。 |
payer_app string | 分潤發起方關聯的
app
對象的
id
。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
livemode boolean | 是否處于 live 模式。 |
method string | 分潤方式。目前支持渠道:
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯)、
allinpay
(通聯)、
jdpay
(京東)以及
balance
(余額)。 |
amount integer | 結算的總金額。 |
amount_succeeded integer | 結算成功的分潤金額。 |
amount_failed integer | 結算失敗的分潤金額。 |
amount_canceled integer | 結算取消的分潤金額。 |
count integer | 結算的總筆數。 |
count_succeeded integer | 結算成功的筆數。 |
count_failed integer | 結算失敗的筆數。 |
count_canceled integer | 取消的筆數。 |
time_finished timestamp | 完成時間,用 Unix 時間戳表示。 |
fee integer | 渠道收取的手續費,單位為分。 |
operation_url string | 支付寶批量付款 URL。 |
status string | 分潤結算狀態。值為
created
:已創建、
pending
:處理中、
succeeded
:全部完成、
failed
:全部失敗、
partially_succeeded
:部分成功、
canceled
:全部取消。 |
royalty_transactions list | 關聯的
royalty_transaction
對象列表,詳見
Royalty Transaction
。 |
metadata hash | 詳見 元數據 。 |
{ "id": "170302171104000011", "object": "royalty_settlement", "payer_app": "app_1Gqj58ynP0mHeX1q", "amount": 1000, "amount_canceled": 0, "amount_failed": 0, "amount_succeeded": 0, "count": 10, "count_canceled": 0, "count_failed": 0, "count_succeeded": 0, "created": 1488445864, "fee": 0, "livemode": true, "metadata": {}, "method": "unionpay", "operation_url": null, "royalty_transactions": { "object": "list", "has_more": true, "url": "/v1/royalty_transactions", "data": [ { "id": "170302171104000011", "object": "royalty_transaction", "amount": 15, "status": "created", "settle_account": "320217022818142300000901", "source_user": "user_002", "recipient_app": null, "royalty_settlement": "170302171104000011" }, {...}, {...} ] }, "status": "created", "time_finished": null }
通過設置結算的條件,將一個或多個 royalty
對象進行匯總,生成 royalty_settlement
對象,其中為每個分潤接收方生成 royalty_transaction
對象。
請求參數 | 描述 |
---|---|
payer_app required string | 分潤發起方關聯的
app
對象的
id
。 |
method required string | 分潤方式。目前支持渠道:
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯)、
allinpay
(通聯)、
jdpay
(京東)以及
balance
(余額)。 |
recipient_app optional string | 分潤接收方的
app
對象的
id
。與
source_user
同時填寫時,取其交集。 |
source_user optional string | 分潤接收方
user
對象的
id
。與
recipient_app
同時填寫時,取其交集。 |
source_no optional string | 關聯訂單對象的
merchant_order_no
。不能和
source_nos
同時使用。 |
source_nos array string | 關聯訂單對象的
merchant_order_no
列表。最多可填寫 200 個元素。不能和
source_no
同時使用。 |
min_amount optional integer | 最小分潤金額,單位為分。創建分潤結算時,如果分潤接收方的結算金額小于該值,則不會生成
royalty_transaction
對象(不會進入結算)。 |
is_preview optional bool | 是否預覽結算結果,選擇預覽不會真實創建
royalty_settlement
對象(無法被查詢),也不會更新
royalty
對象的狀態,默認值為
false
。 |
created [ gt ] optional timestamp | 創建時間大于該值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
metadata optional hash | 詳見 元數據 。 |
返回
返回一個 royalty_settlement
對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/royalty_settlements/
curl https://api.pingxx.com/v1/royalty_settlements \
-H "Content-Type: application/json" \
-u sk_live_vjfr90jj1q985KuPO84iP8KO: \
-d '{
"payer_app":"app_1Gqj58ynP0mHeX1q",
"method": "unionpay",
"recipient_app": "app_1Gqj58ynP0mHeX1q",
"created": {
"gt": 1488211200,
"lte": 1488297600
}
}'
{ "id": "170302171104000011", "object": "royalty_settlement", "payer_app": "app_1Gqj58ynP0mHeX1q", "amount": 1000, "amount_canceled": 0, "amount_failed": 0, "amount_succeeded": 0, "count": 10, "count_canceled": 0, "count_failed": 0, "count_succeeded": 0, "created": 1488445864, "fee": 0, "livemode": true, "metadata": {}, "method": "unionpay", "operation_url": null, "royalty_transactions": { "object": "list", "has_more": true, "url": "/v1/royalty_transactions", "data": [ { "id": "170302171104000011", "object": "royalty_transaction", "amount": 15, "status": "created", "settle_account": "320217022818142300000901", "source_user": "user_002", "recipient_app": null, "royalty_settlement": "170302171104000011" }, {...}, {...} ] }, "status": "created", "time_finished": null }
通過 royalty_settlement
對象的 id
查詢一個已創建的 royalty_settlement
對象。
請求參數 | 描述 |
---|---|
ROYALTY_SETTLEMENT_ID required string | royalty_settlement
對象的
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個 royalty_settlement
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/royalty_settlements/{ROYALTY_SETTLEMENT_ID}
curl https://api.pingxx.com/v1/royalty_settlements/170302171104000011 \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "id": "170302171104000011", "object": "royalty_settlement", "payer_app": "app_1Gqj58ynP0mHeX1q", "amount": 1000, "amount_canceled": 0, "amount_failed": 0, "amount_succeeded": 0, "count": 10, "count_canceled": 0, "count_failed": 0, "count_succeeded": 0, "created": 1488445864, "fee": 0, "livemode": true, "metadata": {}, "method": "unionpay", "operation_url": null, "royalty_transactions": { "object": "list", "has_more": false, "url": "/v1/royalty_transactions", "data": [ { "id": "170302171104000011", "object": "royalty_transaction", "amount": 15, "status": "created", "settle_account": "320217022818142300000901", "source_user": "user_002", "recipient_app": null, "royalty_settlement": "170302171104000011" }, {...}, {...} ] }, "status": "created", "time_finished": null }
通過 royalty_settlement
對象的 id
更新一個已創建的 royalty_settlement
對象。
請求參數 | 描述 |
---|---|
ROYALTY_SETTLEMENT_ID required string | royalty_settlement
對象的
id
,該參數僅需要填寫在請求地址內。 |
status required string | 狀態修改,取值范圍為:"pending" 和 "canceled"。如需要進行分潤結算確認,請傳入:"pending" ; 如需取消分潤結算,請傳入:"canceled"。 |
返回
返回一個更新后的 royalty_settlement
對象,或者返回一個錯誤,詳見 錯誤。
PUT https://api.pingxx.com/v1/royalty_settlements/{ROYALTY_SETTLEMENT_ID}
curl https://api.pingxx.com/v1/royalty_settlements/{ROYALTY_SETTLEMENT_ID} \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d'{
"status": "canceled"
}'
{
"id": "170302171104000011",
"object": "royalty_settlement",
"payer_app": "app_1Gqj58ynP0mHeX1q",
"amount": 1,
"amount_canceled": 1,
"amount_failed": 0,
"amount_succeeded": 0,
"count": 1,
"count_canceled": 1,
"count_failed": 0,
"count_succeeded": 0,
"created": 1488445864,
"fee": 0,
"livemode": true,
"metadata": {},
"method": "unionpay",
"operation_url": null,
"royalty_transactions": {
"object": "list",
"has_more": false,
"url": "/v1/royalty_transactions",
"data": [
{
"id": "170302171104000011",
"object": "royalty_transaction",
"amount": 1,
"status": "canceled",
"settle_account": "320217022818142300000901",
"source_user": "user_002",
"recipient_app": null,
"royalty_settlement": "170302171104000011"
}
]
},
"status": "canceled",
"time_finished": null
}
返回之前創建過 royalty_settlement
對象的一個列表。列表是按創建時間進行排序,總是將最新的 royalty_settlement
對象顯示在最前。
請求參數 | 描述 |
---|---|
payer_app required string | 分潤發起方關聯的
app
對象的
id
。 |
method optional string | 分潤方式。目前支持渠道:
wx
(微信 App)、
wx_pub
(微信公眾號)、
wx_lite
(微信小程序)、
alipay
(支付寶)、
unionpay
(銀聯)、
allinpay
(通聯)、
jdpay
(京東)以及
balance
(余額)。 |
page optional integer | 頁碼,默認值為 "1",取值范圍(1~100000000)。 |
per_page optional integer | 每頁數量,默認值為 "10",取值范圍(1~100)。 |
created [ gt ] optional timestamp | 創建時間大于改值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 royalty_settlement
對象,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/royalty_settlements/
curl https://api.pingxx.com/v1/royalty_settlements \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/royalty_settlements", "has_more": true, "data": [ { "id": "170302171104000011", "object": "royalty_settlement", "payer_app": "app_1Gqj58ynP0mHeX1q", "amount": 1, "amount_canceled": 1, "amount_failed": 0, "amount_succeeded": 0, "count": 1, "count_canceled": 1, "count_failed": 0, "count_succeeded": 0, "created": 1488445864, "fee": 0, "livemode": true, "metadata": {}, "method": "unionpay", "operation_url": null, "royalty_transactions": { "object": "list", "has_more": false, "url": "/v1/royalty_transactions", "data": [ { "id": "170302171104000011", "object": "royalty_transaction", "amount": 1, "status": "canceled", "settle_account": "320217022818142300000901", "source_user": "user_002", "recipient_app": null, "royalty_settlement": "170302171104000011" } ] }, "status": "canceled", "time_finished": null } {...}, {...} ] }
royalty_transaction
對象記錄一次分潤結算中對一個分潤接收方的分潤詳情,包括金額、結算賬戶和狀態等信息,可以在關聯的 royalty_settlement
對象中查詢,也可以直接查詢。royalty_transaction
對象同時也會在分潤接收方關聯的應用下生成。
屬性 | 描述 |
---|---|
id string | 分潤賬號 id。 |
object string | 值為 "royalty_transaction"。 |
amount integer | 分潤結算金額。 |
created timestamp | 創建時間,Unix 時間戳。 |
status string | 分潤結算狀態,已創建:created、處理中:pending,完成:succeeded,失敗:failed,取消:canceled。 |
settle_account string | 使用的
settle_account
對象的
id
或
balance
、
manual
中的一種。 |
source_user string | 分潤接收方
user
對象的
id
。 |
recipient_app string | 分潤接收方關聯的
app
對象的
id
。 |
failure_msg string | 分潤結算失敗的錯誤消息的描述。 |
transfer string | 關聯的企業付款對象 ID。 |
royalty_settlement string | 分潤結算對象 ID。 |
{
"id": "170220181906000011",
"object": "royalty_transaction",
"amount": 4,
"status": "canceled",
"settle_account": "balance",
"source_user": "user_001",
"recipient_app": null,
"failure_msg":null,
"transfer":"tr_HqbzHCvLOaL4La1ezHfDWTqH",
"royalty_settlement": "170220181906000011"
}
通過 royalty_transaction
對象的 id
查詢一個已創建的 royalty_transaction
對象。
請求參數 | 描述 |
---|---|
ROYALTY_TRANS_ID required | 分潤結算明細 ID,該參數僅需要填寫在請求地址內。 |
返回
返回一個 royalty_transaction
對象,或者返回一個錯誤,詳見 錯誤。
https://api.pingxx.com/v1/royalty_transactions/{ROYALTY_TRANS_ID} \ -u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
curl https://api.pingxx.com/v1/royalty_settlements/{ROYALTY_SETTLEMENT_ID}/transactions/{ROYALTY_TRANS_ID} \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "170220181906000011",
"object": "royalty_transaction",
"amount": 4,
"status": "canceled",
"settle_account": "balance",
"source_user": "user_001",
"recipient_app": null,
"failure_msg":null,
"transfer":"tr_HqbzHCvLOaL4La1ezHfDWTqH",
"royalty_settlement": "170220181906000011"
}
返回之前創建過 royalty_transaction
對象的一個列表。列表是按創建時間進行排序,總是將最新的 royalty_transaction
對象顯示在最前。
請求參數 | 描述 |
---|---|
royalty_settlement optional string | royalty_settlement
對象的
id
。 |
page optional integer | 頁碼,默認值為 "1",取值范圍(1~100000000)。 |
per_page optional integer | 每頁數量,默認值為 "10",取值范圍(1~100)。 |
created [ gt ] optional timestamp | 創建時間大于改值,用 Unix 時間戳表示。 |
created [ gte ] optional timestamp | 創建時間大于或等于該值,用 Unix 時間戳表示。 |
created [ lt ] optional timestamp | 創建時間小于該值,用 Unix 時間戳表示。 |
created [ lte ] optional timestamp | 創建時間小于或等于該值,用 Unix 時間戳表示。 |
返回
返回一個 royalty_transaction
對象列表,或者返回一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/royalty_transactions
curl https://api.pingxx.com/v1/royalty_transactions \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{ "object": "list", "url": "/v1/royalty_transactions", "has_more": true, "data": [ { "id": "170220181906000011", "object": "royalty_transaction", "amount": 4, "status": "canceled", "settle_account": "balance", "source_user": "user_001", "recipient_app": null, "failure_msg":null, "transfer":"tr_HqbzHCvLOaL4La1ezHfDWTqH", "royalty_settlement": "170220181906000011" }, {...}, {...} ] }
該類型的 Event 對象會在 royalty_settlement
對象在分潤結算成功、分潤結算失敗、分潤結算部分成功、分潤結算部分失敗時觸發。以 Webhooks 形式發送至客戶配置的 Webhooks URL 。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
royalty_settlement.succeeded | 在分潤結算成功時觸發。 |
royalty_settlement.failed | 在分潤結算失敗時觸發。 |
royalty_settlement.partially_succeeded | 在分潤結算部分成功時觸發。 |
royalty_settlement.canceled | 在分潤結算取消時觸發。 |
獨立的第三方接口,根據用戶的姓名、身份證號、銀行卡號、手機號,鑒別其身份真偽。此接口按照調用次數 累加計費 ,并且調用成功即產生費用(無論認證成功與否)。使用時請預先進行 賬戶充值 。注意:此接口強制要求 簽名 (Pingplusplus-Signature),需在管理平臺上 配置商戶公鑰 ,但無須開啟。此接口不支持 Test 模式下調用,僅可在 Live 模式下調用。
屬性 | 描述 |
---|---|
type string | 身份證信息或者銀行卡信息串,取值范圍:"id_card"(身份證信息串);"bank_card"(銀行卡信息串)。 |
app string | 應用 ID, 如何獲取App ID 。 |
result_code int | 返回碼,詳情請參照API文檔附錄的 認證接口result_code說明 。 |
message string | 描述信息,接口調用失敗時為錯誤描述,成功時為 "SUCCESS" 。 |
paid boolean | 是否已扣款,扣款為
true
,未扣款為
false
。 |
data map | 驗證數據,包含參數見下表。 |
data 參數說明 | 描述 |
---|---|
id_name string | 身份證姓名(1~16位); |
id_number string | 身份證號碼(15位或18位); |
card_number string | 銀行卡號(12~19位) 僅在
type
參數為 "bank_card" 的時候必需要傳此參數; |
phone_number string | 手機號(11位) 僅在
type
參數為 "bank_card" 的時候可以選擇是否傳此參數,暫不支持178開頭的手機號。 |
{
"type": "id_card",
"app": "app_LibTW1n1SOq9Pin1",
"result_code": 0,
"message": "SUCCESS",
"paid":true,
"data": {
"id_name": "張三",
"id_number": "320291198811110000"
}
}
獨立的第三方接口,請求該接口根據用戶的姓名、身份證號、銀行卡號、手機號,鑒別其身份真偽。
請求參數 | 描述 |
---|---|
type required string | 身份證信息或者銀行卡信息串,取值范圍: "id_card"(身份證信息串);"bank_card"(銀行卡信息串)。 |
app required string | 應用
ID
,查看
如何獲取App ID
。 |
data required map | 驗證數據,包含參數見下表。 |
data 參數說明 | 描述 |
---|---|
id_name required string | 身份證姓名(1~16位)。 |
id_number required string | 身份證號碼(15位或18位)。 |
card_number required string | 銀行卡號(12~19位),僅在
type
參數為 "bank_card" 時必傳,
type
參數為 "id_card" 時請勿傳此參數。 |
phone_number optional,string | 手機號(11位),僅在
type
參數為 "bank_card" 時可以選擇是否傳此參數,暫不支持178開頭的手機號。
type
參數為 "id_card" 時請勿傳此參數。 |
返回
請求成功,返回 result_code
字段為返回碼,詳情參照API文檔附錄的認證接口 result_code
說明;message
中是錯誤描述信息,僅在成功時返回 success
; paid
表示本次調用接口認證是否產生費用, paid
為 true
則需要付費,false
不產生費用,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/identification
curl https://api.pingxx.com/v1/identification \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Content-Type: application/json" \
-u sk_live_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"type": "bank_card",
"app": "app_1Gqj58ynP0mHeX1q",
"data": {
"id_name": "張三",
"id_number": "320291198811110000",
"card_number": "6201111122223333"
}
}'
{
"type": "bank_card",
"app": "app_1Gqj58ynP0mHeX1q",
"result_code": 3441,
"message": "銀行卡信息認證失敗",
"paid":true,
"data": {
"id_name": "張三",
"id_number": "320291198811110000",
"card_number": "6201111122223333"
}
}
目前只針對支付成功的訂單進行報關,報關金額為訂單金額,customs_code
是海關編號字段說明,trade_no
區別于 Charge 中的 order_no
,兩者不能相同。注意:
1 - 此接口不支持 Test 模式下調用,僅可在 Live 模式下調用;
2 - 當使用支付寶報關時:新鄭綜合保稅區(空港)、深圳海關兩地的支付單需要同時報往地方平臺和總署:
2.1 - 不拆單,即 is_split
=false 時:①先推送屬地,再使用新的 trade_no
推送總署;②同一筆訂單的兩次推送,除了 customs_code
、trade_no
變更外,其他請求字段不變,以免國檢請求失敗;
2.2 - 拆單,即 is_split
=true 時:①先推送屬地,5 分鐘后再使用同一個 trade_no
推送總署;②同一筆訂單的兩次推送,除了 customs_code
變更外,其他請求字段不變,以免國檢請求失敗;
屬性 | 描述 |
---|---|
id string | 報關對象
id
。 |
app string | 應用
ID
,查看
如何獲取App ID
。 |
channel string | 報關使用的第三方支付渠道。取值范圍:1:支付寶類(
alipay
、
alipay_pc_direct
、
alipay_wap
、
alipay_qr
、
cb_alipay
、
cb_alipay_wap
、
cb_alipay_pc_direct
),2:微信類(
wx
、
wx_pub
、
wx_pub_qr
、
wx_wap
、
cb_wx
、
cb_wx_pub
、
cb_wx_pub_qr
、
cb_wx_pub_scan
),3:銀聯類(
upacp
、
upacp_wap
、
upacp_pc
、
applepay_upacp
)。 |
trade_no string | 商戶報關訂單號,8~20位。 |
customs_code string | 海關編號,詳情請參照 海關編號說明 。 |
amount int | 報關金額,取值范圍:1~1000000000。 |
charge string | charge
對象
id
。 |
transport_amount int | 訂單物流金額,默認為0,當
is_split
為
true
時,此參數無效。 |
is_split boolean | 是否拆單,默認值為"false"。 |
sub_order_no string | 商戶子訂單號,1~30位,當
is_split
為
true
時此參數必填。 |
extra map | 自定義參數,如果渠道為銀聯則需要額外參數
extra
,詳情請參考下方
extra 參數說明
。 |
object string | 值為 "customs" 。 |
created timestamp | 創建時間,用 Unix 時間戳表示。 |
time_succeeded int | 處理時間,用 Unix 時間戳表示。 |
status string | 報關狀態,
pending
: 處理中;
succeeded
: 成功;
failed
: 失敗 。 |
failure_code string | 錯誤碼,詳見 錯誤 中的錯誤碼描述。 |
failure_msg string | 錯誤信息描述。 |
transaction_no string | 渠道報關流水號。 |
extra 參數 | |
---|---|
pay_account string | 支付ID,1~60位,字母、數字和/或特殊符號字符。 |
certif_type string | 證件類型,取值范圍參考:"01":身份證;"02":軍官證;"03":護照;"04":回鄉證;"05":臺胞證;"06":警官證 "07":士兵證; "99":其它證件。 |
customer_name string | 姓名,1~20位,字母、數字和/或特殊符號字符。 |
certif_id string | 證件號,1~30位,字母、數字和/或特殊符號字符。 |
tax_amount int | 稅費的金額。 |
{
"id": "14201607013878045463",
"object": "customs",
"app": "app_LibTW1n1SOq9Pin1",
"charge_id": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"channel": "upacp",
"trade_no": "15112496832609",
"customs_code": "GUANGZHOU",
"amount": 100,
"status": "pending",
"created": 1410834527,
"time_succeeded": 1410838127,
"failure_code": null,
"failure_msg": null,
"transaction_no": "xxxxxxxx",
"extra":{}
}
請求報關接口,目前只針對支付成功的訂單 charge id
進行報關請求,報關金額為訂單金額。注意:此接口強制要求 簽名 (Pingplusplus-Signature),需在管理平臺上 配置商戶公鑰,但無須開啟。
請求參數 | 描述 |
---|---|
app required string | 應用
ID
,查看
如何獲取App ID
。 |
channel required string | 報關使用的第三方支付渠道。取值范圍:1:支付寶類(
alipay
、
alipay_pc_direct
、
alipay_wap
、
alipay_qr
、
cb_alipay
、
cb_alipay_wap
、
cb_alipay_pc_direct
),2:微信類(
wx
、
wx_pub
、
wx_pub_qr
、
wx_wap
、
cb_wx
、
cb_wx_pub
、
cb_wx_pub_qr
、
cb_wx_pub_scan
),3:銀聯類(
upacp
、
upacp_wap
、
upacp_pc
、
applepay_upacp
)。 |
trade_no required string | 商戶報關訂單號,8 ~ 20 位,且不能與 charge 中的
order_no
相同。 |
customs_code required string | 海關編號,詳情請參照 海關編號說明 。 |
amount required int | 報關金額,取值范圍:1~1000000000。 |
charge required string | charge
對象
id
。 |
transport_amount optional int | 訂單物流金額,默認為0,當
is_split
為
true
時,此參數無效。 |
is_split optional boolean | 是否拆單,默認值為"false"。 |
sub_order_no optional string | 商戶子訂單號,1~30位,當
is_split
為
true
時此參數必填。 |
extra optional map | 自定義參數,如果渠道為銀聯或者
Apple Pay
則需要額外參數
extra
,詳情請參考下表的
extra
參數說明。 |
extra 參數 | 描述 |
---|---|
pay_account required string | 支付ID,1~60位,字母、數字和/或特殊符號字符。 |
certif_type required string | 證件類型,取值范圍參考:"01":身份證;"02":軍官證;"03":護照;"04":回鄉證;"05":臺胞證;"06":警官證 "07":士兵證; "99":其它證件。 |
customer_name required string | 姓名,1~20位,字母、數字和/或特殊符號字符。 |
certif_id required string | 證件號,1~30位,字母、數字和/或特殊符號字符。 |
tax_amount optional int | 稅費的金額。 |
返回
返回一個 customs
報關對象,或者返回一個錯誤,詳見 錯誤。
POST https://api.pingxx.com/v1/customs
curl https://api.pingxx.com/v1/customs \
-H "Pingplusplus-Signature: SIGNATURE" \
-H "Content-Type: application/json" \
-u sk_live_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
"app":"App ID",
"charge":"Charge ID",
"channel": "upacp",
"trade_no": "15112496832609",
"customs_code":"GUANGZHOU",
"amount":100,
"transport_amount": 10,
"is_split": true,
"sub_order_no": "123456",
"extra":{
"pay_account": "1234567890",
"certif_type": "02",
"customer_name": "A Name",
"certif_id": "ID Card No",
"tax_amount":"10"
}
}'
{
"id": "14201607013878045463",
"object": "customs",
"app": "app_LibTW1n1SOq9Pin1",
"charge_id": "ch_L8qn10mLmr1GS8e5OODmHaL4",
"channel": "alipay",
"trade_no": "15112496832609",
"customs_code": "GUANGZHOU",
"amount": 100,
"status": "succeeded",
"created": 1410834527,
"time_succeeded": 1410838127,
"failure_code": null,
"failure_msg": null,
"transaction_no": "201609061456194799218",
"extra":{}
}
通過 customs
對象的 id
查詢一個已創建的 customs
對象。通過查詢接口確認報關的狀態。
請求參數 | 描述 |
---|---|
CUSTOMS_ID required string | 報關對象
id
,該參數僅需要填寫在請求地址內。 |
返回
返回一個已存在的 customs
對象或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/customs/{CUSTOMS_ID}
curl https://api.pingxx.com/v1/customs/14201607013878045463 \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqPW9KC: \
報關成功: { "id": "14201607013878045463", "object": "customs", "app": "app_LibTW1n1SOq9Pin1", "charge_id": "ch_L8qn10mLmr1GS8e5OODmHaL4", "channel": "alipay", "trade_no": "15112496832609", "customs_code": "GUANGZHOU", "amount": 100, "status": "succeeded", "created": 1410834527, "time_succeeded": 1410838127, "failure_code": null, "failure_msg": null, "transaction_no": "201609061456194799218", "extra":{} } 報關失敗: { "id": "14201607013878045463", "object": "customs", "app": "app_LibTW1n1SOq9Pin1", "charge_id": "ch_L8qn10mLmr1GS8e5OODmHaL4", "channel": "alipay", "trade_no": "15112496832609", "customs_code": "GUANGZHOU", "amount": 100, "status": "failed", "created": 1410834527, "failure_msg": "報關失敗", "transaction_no": null, "extra":{} }
該類型的 Event 對象會在 Customs 付款成功后觸發,以 Webhooks 形式發送至客戶配置的 Webhooks URL 。詳情請參考 Events 事件。
事件類型 | 描述 |
---|---|
customs.succeeded | 報關對象,報關成功時觸發。 |
{
"id": "evt_14201611031154010770",
"created": 1478145460,
"livemode": true,
"type": "customs.succeeded",
"data": {
"object": {
"amount": 999999,
"app_id": "app_LibTW1n1xxxxxxxx",
"channel": "upacp",
"charge_id": "ch_XLGWTCnn5iPCWz0LK4yjfbv1",
"created": 1478145241,
"customs_code": "GUANGZHOU",
"extra": {
"certif_id": "41282119910910xxxx",
"certif_type": "01",
"customer_name": "張小明",
"pay_account": "張小明",
"tax_amount": "101"
},
"id": "14201611031154019772",
"is_split": true,
"object": "customs",
"status": "succeeded",
"sub_order_no": "P327932738",
"time_succeeded": 1478145460,
"trade_no": "37878347380",
"transaction_no": "12345678",
"transport_amount": 0
}
},
"object": "event",
"request": "",
"pending_webhooks": 0
}
為了便于客戶系統或者第三方系統處理客戶的交易信息,Ping++ 系統支持 Webhooks 功能,可以按照客戶要求把特定的事件結果推送到指定的地址以便于客戶做后續處理。目前支持的事件包括周期性交易匯總信息、支付結果、紅包結果、企業轉賬結果和退款結果。 以下是關于接收 Webhooks 通知的說明:
POST
形式發送的 JSON
,放在請求的 body
里,內容是 Event
對象。其中 Event
對象屬性定義如下。
屬性 | 描述 |
---|---|
id string | 事件對象
id
,由 Ping++ 生成,28 位長度字符串。 |
object string | 值為 "event"。 |
livemode boolean | 事件是否發生在生產環境。 |
created timestamp | 事件發生的時間。 |
pending_webhooks int | 推送未成功的 webhooks 數量。 |
type string | 事件類型,詳見 事件類型 。 |
request string | API Request ID。值 "null" 表示該事件不是由 API 請求觸發的。 |
data hash | 綁定在事件上的數據對象,具體參考下表
data
參數說明。 |
data 參數 | 描述 |
---|---|
object hash | |
previous_attributes hash | 綁定對象屬性變化之前的值。只有 *.updated 事件有這個屬性。 |
{
"id": "evt_la06CoQAiPojSgJKe5gt3nwq",
"created": 1427555016,
"livemode": false,
"type": "summary.weekly.available",
"data": {
"object": {
"app_id": "app_b94eHsO1avrDyL8S",
"object": "app_weekly_summary",
"app_display_name": "App Name",
"created": 1425830460,
"summary_from": 1425225600,
"summary_to": 1425830399,
"charges_amount": 2000,
"charges_count" : 200
}
},
"object": "event",
"pending_webhooks": 0,
"request": null
}
每個事件類型的作用域都是單個應用,目前支持的事件包括:
事件類型 | 描述 |
---|---|
summary.daily.available | 上一天 0 點到 23 點 59 分 59 秒的交易金額和交易量統計,在每日 04:00 點左右觸發。 |
summary.weekly.available | 上周一 0 點至上周日 23 點 59 分 59 秒的交易金額和交易量統計,在每周一 04:00 點左右觸發。 |
summary.monthly.available | 上月一日 0 點至上月末 23 點 59 分 59 秒的交易金額和交易量統計,在每月一日 04:00 點左右觸發。 |
charge.succeeded | 支付對象,支付成功時觸發。 |
refund.succeeded | 退款對象,退款成功時觸發。 |
transfer.succeeded | 企業付款對象,支付成功時觸發。 |
transfer.failed | 企業付款對象,支付失敗時觸發。 |
red_envelope.sent | 紅包對象,紅包發送成功時觸發。 |
red_envelope.received | 紅包對象,紅包接收成功時觸發。 |
batch_transfer.succeeded | 批量企業付款對象,批量企業付款成功或部分成功時觸發。 |
batch_transfer.failed | 批量企業付款對象,批量企業付款全部失敗時觸發。 |
customs.succeeded | 報關對象,報關成功時觸發。 |
batch_refund.succeeded | 批量退款對象,批量退款成功或部分成功時觸發。 |
order.succeeded | 訂單對象,訂單支付成功時觸發。 |
order.refunded | 訂單退款對象,訂單退款成功時觸發。 |
balance.withdrawal.succeeded | 提現對象,提現成功時觸發。 |
balance.withdrawal.failed | 提現對象,提現失敗時觸發。 |
batch_withdrawal.succeeded | 批量提現對象,批量提現成功時觸發。 |
batch_withdrawal.failed | 批量提現對象,批量提現全部或部分失敗時觸發。 |
batch_withdrawal.partially_succeeded | 批量提現對象,批量提現部分成功時觸發。 |
batch_withdrawal.canceled | 批量提現對象,批量提現取消時觸發。 |
royalty_settlement.succeeded | 分潤結算對象,分潤結算全部成功時觸發。 |
royalty_settlement.partially_succeeded | 分潤結算對象,分潤結算部分成功時觸發。 |
royalty_settlement.failed | 分潤結算對象,分潤結算全部失敗時觸發。 |
royalty_settlement.canceled | 分潤結算對象,分潤結算全部取消時觸發。 |
recharge.succeeded | 充值對象,充值成功時觸發。 |
recharge.refund.succeeded | 充值對象,充值退款成功時觸發。 |
右邊是具體的 json 字符串展示針對 App 對象的各交易匯總事件類型的數據格式。
當事件類型為 summary.daily.available
、summary.weekly.available
、summary.monthly.available
的時候, data
中的 object
為 App
對象。
App 日/周/月統計對象主要字段定義如下: | |
---|---|
app_id | 應用
ID
。 |
object | 對象類型。 |
app_display_name | 應用名稱。 |
created | 創建時間(timestamp)。 |
summary_from | 統計起始時間(timestamp)。 |
summary_to | 統計終止時間(timestamp)。 |
charges_amount | 交易金額(單位:分)。 |
charges_count | 交易量(筆)。 |
當事件類型為 charge.succeeded
、refund.succeeded
、transfer.succeeded
、transfer.failed
、customs.succeeded
、batch_transfer.succeeded
、batch_refund.succeeded
和 red_envelope.sent
、red_envelope.received
的時候,data
中的 object
分別為 charge、refund、transfer、customs、batch_transfer、batch_refund 和 red_envelope 對象。
事件類型為 summary.daily.available : { "id": "evt_ugB6x3K43D16wXCcqbplWAJo", "created": 1427555016, "livemode": false, "type": "summary.daily.available", "data": { "object": { "app_id": "app_b94eHsO1avrDyL8S", "object": "app_daily_summary", "app_display_name": "App Name", "created": 1425139260, "summary_from": 1425052800, "summary_to": 1425139199, "charges_amount": 1000, "charges_count" : 100 } }, "object": "event", "pending_webhooks": 0, "request": null } 事件類型為 summary.weekly.available : { "id": "evt_la06CoQAiPojSgJKe5gt3nwq", "created": 1427555016, "livemode": false, "type": "summary.weekly.available", "data": { "object": { "app_id": "app_b94eHsO1avrDyL8S", "object": "app_weekly_summary", "app_display_name": "App Name", "created": 1425830460, "summary_from": 1425225600, "summary_to": 1425830399, "charges_amount": 2000, "charges_count" : 200 } }, "object": "event", "pending_webhooks": 0, "request": null } 事件類型為 summary.monthly.available : { "id": "evt_hpyVxo7LNvTqS93kpJgfWAFR", "created": 1427555016, "livemode": false, "type": "summary.monthly.available", "data": { "object": { "app_id": "app_b94eHsO1avrDyL8S", "object": "app_monthly_summary", "app_display_name": "App Name", "created": 1425139260, "summary_from": 1422720000, "summary_to": 1425139199, "charges_amount": 3000, "charges_count" : 300 } }, "object": "event", "pending_webhooks": 0, "request": null } 事件類型為 charge.succeeded : { "id": "evt_ugB6x3K43D16wXCcqbplWAJo", "created": 1427555101, "livemode": true, "type": "charge.succeeded", "data": { "object": { "id": "ch_Xsr7u35O3m1Gw4ed2ODmi4Lw", "object": "charge", "created": 1427555076, "livemode": true, "paid": true, "refunded": false, "reversed": false, "app": "app_1Gqj58ynP0mHeX1q", "channel": "upacp", "order_no": "123456789", "client_ip": "127.0.0.1", "amount": 100, "amount_settle": 100, "currency": "cny", "subject": "Your Subject", "body": "Your Body", "extra": {}, "time_paid": 1427555101, "time_expire": 1427641476, "time_settle": null, "transaction_no": "1224524301201505066067849274", "refunds": { "object": "list", "url": "/v1/charges/ch_L8qn10mLmr1GS8e5OODmHaL4/refunds", "has_more": false, "data": [] }, "amount_refunded": 0, "failure_code": null, "failure_msg": null, "metadata": {}, "credential": {}, "description": null } }, "object": "event", "pending_webhooks": 0, "request": "iar_qH4y1KbTy5eLGm1uHSTS00s" } 事件類型為 refund.succeeded : { "id": "evt_gJKelawq06CiPojS5gt3noQA", "created": 1427555348, "livemode": true, "type": "refund.succeeded", "data": { "object": { "id": "re_SG0mnjTD3jAHimbvDKjnXLC9", "object": "refund", "order_no": "SG0mnjTD3jAHimbvDKjnXLC9", "amount": 100, "created": 1427555346, "succeed": true, "status": "succeeded", "time_succeed": 1427555348, "description": "Refund Description", "failure_code": null, "failure_msg": null, "metadata": {}, "charge": "ch_Xsr7u35O3m1Gw4ed2ODmi4Lw", "charge_order_no": "123456789", "transaction_no": "2004450349201512090096425284", "extra": {} } }, "object": "event", "pending_webhooks": 0, "request": "iar_Ca1Oe10OqTSOPOmzX9Hi1a5" } 事件類型為 transfer.succeeded : { "id": "evt_NMO13SJt1jrOaxRMhXC4wj0k", "created": 1435752329, "type": "transfer.succeeded", "livemode": true, "object": "event", "data": { "object": { "id": "tr_fXTq1OHufjHOvbDiPG0qTSiP", "object": "transfer", "type": "b2c", "created": 1435752318, "time_transferred": 1435752318, "livemode": true, "status": "paid", "app": "app_1234567890abcDEF", "channel": "wx_pub", "order_no": "123456789", "amount": 1, "amount_settle": 1, "currency": "cny", "recipient": "Openid", "description": "Your Description", "transaction_no": "1010018301201507010307923793", "extra": { "user_name": "User Name", "force_check": true } } }, "pending_webhooks": 0, "request": "iar_TqvPiDH8SGeHm5GaTKbLuDWL" } 事件類型為 transfer.failed : { "id": "evt_NMO13SJt1jrOaxRMhXC4wjkk", "created": 1435752329, "type": "transfer.failed”, "livemode": true, "object": "event", "data": { "object": { "id": "tr_fXTq1OHufjHOvbDiPG0qTSiP", "object": "transfer", "type": "b2c", "created": 1435752318, "time_transferred": 1435752318, "livemode": true, "status": "failed", "app": "app_1234567890abcDEF", "channel": "wx_pub", "order_no": "123456789", "amount": 1, "amount_settle": 1, "currency": "cny", "recipient": "Openid", "description": "Your Description", "transaction_no": "1010018301201507010307923793", "extra": { "user_name": "User Name", "force_check": true } } }, "pending_webhooks": 0, "request": "iar_TqvPiDH8SGeHm5GaTKbLuDkk" } 事件類型為 red_envelope.sent : { "id": "evt_5BpbV0tYK4ySvodDG2RT6XRq", "created": 1436855491, "type": "red_envelope.sent", "livemode": true, "object": "event", "data": { "object": { "id": "red_z1O8iLmXXXX5uPqLiDzLCavP", "object": "red_envelope", "created": 1436855474, "received": null, "refunded": null, "livemode": true, "status": "sent", "app": "app_1234567890abcDEF", "channel": "wx_pub", "order_no": "123456789", "transaction_no": "0010037269201507140154722852", "amount": 100, "amount_settle": 100, "currency": "cny", "recipient": "Openid", "subject": "Your Subject", "body": "Your Body", "description": "Your Description", "extra": { "nick_name": "Nick Name", "send_name": "Send Name" } } }, "pending_webhooks": 0, "request": "iar_zjLGC8zfLOS8WPS0WLi14ynD" } 事件類型為 red_envelope.received : { "id": "evt_hMGV2eR15fMupHUdDYibhLxe", "object": "event", "type": "red_envelope.received", "livemode": true, "created": 1436753800, "data": { "object": { "id": "red_4qLGO84GaXHOWTSO80mLO8i9", "object": "red_envelope", "created": 1436753573, "received": null, "refunded": null, "livemode": true, "status": "received", "app": "app_1234567890abcDEF", "channel": "wx_pub", "order_no": "123456789", "transaction_no": "0010037269201507130153706663", "amount": 100, "amount_settle": 100, "currency": "cny", "recipient": "Openid", "subject": "Your Subject", "body": "Your Body", "description": "Your Description", "extra": { "nick_name": "Nick Name", "send_name": "Send Name" } } }, "pending_webhooks": 0, "request": "iar_jf1iT0fT0a18v1u5qDvb1uDS" } 事件類型為 batch_transfer.succeeded : { "id": "evt_ca16CoQsiP2ja1JKs5gx3j4q", "object": "event", "created": 1475924802, "livemode": false, "data": { "object": { "id": "181610101014367590", "object": "batch_transfer", "app": "app_ribgW1n2SOqcPxn1", "amount": 8000, "batch_no": "2016101010380007", "channel": "alipay", "currency": "cny", "created": 1476067087, "description": "付款說明", "extra": {}, "failure_msg": null, "fee": 200, "livemode": true, "metadata": {}, "recipients": [ { "account": "[email protected]", "amount": 5000, "name": "張三", "transfer": "tr_jHWfvDnTKG0SiPmbfPbHW1eH", "status": "paid" }, { "account": "[email protected]", "amount": 3000, "name": "李四", "transfer": "tr_8u1yPK1eHWv9D08OePzDe1CK", "status": "paid" } ], "status": "succeeded", "time_succeeded": 1476067147, "type": "b2c" } }, "pending_webhooks": 0, "request": "iar_1KeD0GHi58yLfDyHK4HCOyDS", "type": "batch_transfer.succeeded" } 事件類型為 batch_transfer.failed : { "id": "evt_401180105115844002108412", "created": 1519727749, "livemode": true, "type": "batch_transfer.failed", "data": { "object": { "id": "1811802271834191857", "object": "batch_transfer", "app": "app_ribgW1n2SOqcPxn1", "amount": 17000, "batch_no": "593bb35024ef41e78ebca7c0850f3911", "channel": "alipay", "currency": "cny", "created": 1519727649, "description": "pingxx 提現", "extra": {}, "failure_msg": null, "fee": 0, "livemode": true, "metadata": {}, "recipients": [ { "transfer": null, "fee": 0, "failure_msg": "對支付渠道的請求未能成功。來自 alipay 渠道的錯誤信息:40004 Business Failed PAYEE_NOT_EXIST 收款賬號不存在", "order_no": "1519727649111252", "status": "failed", "transaction_no": null, "amount": 17000, "name": "張三", "account": "13788048171" } ], "status": "failed", "time_succeeded": null, "type": "b2c" } }, "object": "event", "request": "iar_rDSKyPWHuv1094enT8Lar141", "pending_webhooks": 0 } 事件類型為 customs.succeeded : { "id": "evt_14201611031154010770", "created": 1478145460, "livemode": true, "type": "customs.succeeded", "data": { "object": { "amount": 999999, "app_id": "app_LibTW1n1xxxxxxxx", "channel": "upacp", "charge_id": "ch_XLGWTCnn5iPCWz0LK4yjfbv1", "created": 1478145241, "customs_code": "GUANGZHOU", "extra": { "certif_id": "41282119910910xxxx", "certif_type": "01", "customer_name": "張小明", "pay_account": "張小明", "tax_amount": "101" }, "id": "14201611031154019772", "is_split": true, "object": "customs", "status": "succeeded", "sub_order_no": "P327932738", "time_succeeded": 1478145460, "trade_no": "37878347380", "transaction_no": "12345678", "transport_amount": 0 } }, "object": "event", "request": "", "pending_webhooks": 0 } 事件類型為 batch_refund.succeeded : { "id": "evt_401170207171021000437700", "created": 1486458621, "livemode": true, "type": "batch_refund.succeeded", "data": { "object": { "app": "app_LibTW1n1SOq9Pin1", "batch_no": "467223445889520", "charges": [ { "charge": "ch_fHyjLKaj5OSOKCSWj01unzzL", "refund": "re_qXPmnTD4ezHSWjLyfP5KWorT", "status": "succeeded", "failure_msg": null, "amount": 1, "description": "Description ch_fHyjLKaj5OSOKCSWj01unzzL" }, { "charge": "ch_HmnDKKDmrb185mbjDOCqbjct", "refund": "re_DGm9S4jPWHKGTyzTaHPCG090", "status": "failed", "failure_msg": null, "amount": 10, "description": "Description ch_HmnDKKDmrb185mbjDOCqbjct" } ], "created": 1486458591, "description": "Batch refund description.", "id": "1511702071709512304", "livemode": true, "metadata": {}, "object": "batch_refund", "refund_url": null, "refunds": { "data": [ { "amount": 5, "charge": "ch_CWDKSKbvHq983TSOO8u00Se5", "charge_order_no": "T170207050849Sh", "created": 1486458594, "description": "Batch refund description.", "failure_code": null, "failure_msg": null, "id": "re_rLWHWHKajPu9urPqvPmnrbrP", "metadata": {}, "object": "refund", "order_no": "rLWHWHKajPu9urPqvPmnrbrP", "status": "succeeded", "succeed": true, "time_succeed": 1486458602, "transaction_no": "2000000001001702070816030296" }, { "amount": 5, "charge": "ch_9ejPy94qj5u9bTej08uzX9GC", "charge_order_no": "T170207050840eA", "created": 1486458595, "description": "Batch refund description.", "failure_code": null, "failure_msg": null, "id": "re_rbTGi11yDKqP0ujnL4mnPinP", "metadata": {}, "object": "refund", "order_no": "rbTGi11yDKqP0ujnL4mnPinP", "status": "succeeded", "succeed": true, "time_succeed": 1486458604, "transaction_no": "2700002001201700370816029893" }, { "amount": 5, "charge": "ch_Pi504CajrLyHLSCOO0DyXnX5", "charge_order_no": "T170207050857df", "created": 1486458596, "description": "Batch refund description.", "failure_code": null, "failure_msg": null, "id": "re_n9SCCCy9WL00inz5WPazX94S", "metadata": {}, "object": "refund", "order_no": "n9SCCCy9WL00inz5WPazX94S", "status": "succeeded", "succeed": true, "time_succeed": 1486458604, "transaction_no": "2000002001201702071815736474" } ], "has_more": false, "object": "list", "url": null }, "status": "succeeded", "time_succeeded": 1486458621 } }, "object": "event", "request": "iar_rDmfnTyb5ab1z61SOO9qPSKS", "pending_webhooks": 0 } 事件類型為 order.succeeded: { "id": "evt_401180104103535002411103", "created": 1515033335, "livemode": true, "type": "order.succeeded", "data": { "object": { "id": "2011801040000059652", "object": "order", "created": 1515033321, "livemode": true, "paid": true, "refunded": false, "status": "paid", "app": "app_r1uDe9rDashboard", "uid": "[email protected]", "available_balance": 199803142, "merchant_order_no": "9b71105752746cc1", "amount": 10, "actual_amount": 10, "amount_refunded": 0, "amount_paid": 10, "coupon_amount": 0, "currency": "cny", "subject": "Your subject", "body": "Your body", "client_ip": "139.224.154.17", "time_paid": 1515033334, "time_expire": 1515036921, "coupon": null, "description": "Your description", "metadata": { "userStr": "下單" }, "charge_essentials": { "channel": "alipay_wap", "transaction_no": "2018010421001004850382758920", "failure_code": null, "failure_msg": null, "extra": { "success_url": "https://api.pingxx.com", "cancel_url": "http://www.ycsu.tw/solutionfund", "buyer_user_id": "2088283948576829", "fund_bill_list": [ { "amount": 10, "fundChannel": "ALIPAYACCOUNT" } ], "buyer_account": "[email protected]" }, "credential": {} }, "receipt_app": "app_r1uDe9rDashboard", "service_app": "app_r1uDe9rDashboard", "available_methods": [], "charges": { "object": "list", "url": "/v1/charges", "has_more": false, "data": [ { "id": "ch_C44CWHq98CaHmrnnfT9aHiPP", "object": "charge", "created": 1515033322, "livemode": true, "paid": true, "refunded": false, "reversed": false, "app": "app_r1uDe9rDashboard", "channel": "alipay_wap", "order_no": "9b71105752746cc1", "client_ip": "139.224.154.17", "amount": 10, "amount_settle": 10, "currency": "cny", "subject": "Your subject", "body": "Your body", "extra": { "success_url": "https://api.pingxx.com", "cancel_url": "http://www.ycsu.tw/solutionfund", "buyer_user_id": "2088283948576829", "fund_bill_list": [ { "amount": 10, "fundChannel": "ALIPAYACCOUNT" } ], "buyer_account": "[email protected]" }, "time_paid": 1515033334, "time_expire": 1515036921, "time_settle": null, "transaction_no": "2018010421001004850382758920", "refunds": null, "amount_refunded": 0, "failure_code": null, "failure_msg": null, "metadata": { "userStr": "下單" }, "credential": {}, "description": "Your description" } ] } } }, "object": "event", "request": "iar_4CeT88TybLm1jvPeD4WTO0UP", "pending_webhooks": 0 } 事件類型為 order.refunded: { "id": "evt_401171222113755187074803", "created": 1513913873, "livemode": true, "type": "order.refunded", "data": { "object": { "id": "2001708140000017551", "object": "order", "created": 1513913809, "livemode": true, "paid": true, "refunded": true, "status": "refunded", "app": "app_1Gqj58ynP0mHeX1q", "uid": "0", "available_balance": 0, "merchant_order_no": "2017081400000006", "amount": 1, "actual_amount": 1, "amount_refunded": 1, "amount_paid": 1, "coupon_amount": 0, "currency": "cny", "subject": "Your Subject", "body": "Your Body", "client_ip": "192.168.1.1", "time_paid": 1513913854, "time_expire": 1514000209, "coupon": null, "description": null, "metadata": {}, "charge_essentials": { "channel": "alipay_qr", "transaction_no": "201712222100100888", "failure_code": null, "failure_msg": null, "extra": { "buyer_user_id": "2088902388888888", "fund_bill_list": [{ "amount": 1, "fundChannel": "COUPON" }], "buyer_account": "133****3333" }, "credential": {} }, "receipt_app": "app_1Gqj58ynP0mHeX1q", "service_app": "app_1Gqj58ynP0mHeX1q", "available_methods": [], "charges": { "object": "list", "url": "/v1/charges", "has_more": false, "data": [{ "id": "ch_1Kyn50DyjXbHbvnv5SGK4qDK", "object": "charge", "created": 1513913827, "livemode": true, "paid": true, "refunded": true, "reversed": false, "app": "app_1Gqj58ynP0mHeX1q", "channel": "alipay_qr", "order_no": "2017081400000006", "client_ip": "192.168.1.1", "amount": 1, "amount_settle": 1, "currency": "cny", "subject": "Your Subject", "body": "Your Body", "extra": { "buyer_user_id": "2088902388888888", "fund_bill_list": [{ "amount": 1, "fundChannel": "COUPON" }], "buyer_account": "133****3333" }, "time_paid": 1513913854, "time_expire": 1514000209, "time_settle": null, "transaction_no": "201712222100100888", "refunds": null, "amount_refunded": 0, "failure_code": null, "failure_msg": null, "metadata": {}, "credential": {}, "description": null }] } } }, "object": "event", "request": "iar_C8KOu5HOmD8CbzbXrPqv1y9S", "pending_webhooks": 0 } 事件類型為 balance.withdrawal.succeeded: { "id": "evt_LOGV2e895fMupHUdDJRJLYU00", "object": "event", "type": "balance.withdrawal.succeeded", "livemode": true, "created": 1472649887, "data": { "object": { "id": "310216083121080700006701", "object": "withdrawal", "app": "app_LibTW1n1SOq9Pin1", "amount": 20000, "asset_transaction": "", "balance_transaction": "", "created": 1472648887, "description": "test232description", "extra": { "account": "6225210207073918", "name": "姓名", "open_bank_code": "0102", "prov": "上海", "city": "上海" }, "fee": 200, "livemode": true, "metadata":{}, "source": null, "status": "succeeded", "time_canceled": null, "time_succeeded": 1472649887, "user_fee": 50 } }, "pending_webhooks": 0, "request": "iar_op4iT0fT0a18v1u5qDvb1uP0" } 事件類型為 balance.withdrawal.failed: { "id": "evt_400171904244335723330503", "created": 1504507460, "livemode": true, "type": "balance.withdrawal.failed", "data": { "object": { "id": "1711709041444240785", "object": "withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "amount": 1000, "asset_transaction": null, "balance_transaction": "601170904500051873400001", "channel": "wx_pub", "created": 1504507460, "description": "賬戶提現", "extra": { "open_id": "oYzqS4Wr5OKm9SyPWDOeb5qnzHC8" }, "failure_msg": "對渠道的請求未能成功。來自渠道的錯誤信息:SEND_FAILED|發送失敗,請更換單號重試", "fee": 0, "livemode": true, "metadata": {}, "operation_url": null, "order_no": "3Gz64j6XYbH3ZNgEWYNL", "source": null, "status": "failed", "time_canceled": null, "time_succeeded": null, "user": "user_007", "user_fee": 0, "settle_account": null } }, "object": "event", "pending_webhooks": 0, "request": "iar_GSqTeP0404KSmPmfT8in5SO4" } 事件類型為 batch_withdrawal.succeeded: { "id": "evt_400171908233490343433257", "created": 1504507460, "livemode": true, "type": "batch_withdrawal.succeeded", "data": { "object": { "id": "1911709051015122025", "object": "batch_withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "created": 1478833871, "livemode": true, "amount": 80000, "amount_succeeded": 80000, "amount_failed": 0, "amount_canceled": 0, "count": 3, "count_succeeded": 3, "count_failed": 0, "count_canceled": 0, "fee": 600, "metadata": {}, "operation_url": null, "status": "succeeded", "source": "1811709051435464631", "time_finished": 1504507460, "user_fee": 0, "withdrawals": { "object": "list", "url": null, "has_more": false, "data": [ { "id": "1711711150302360654", "object": "withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "amount": 20000, "asset_transaction": null, "balance_transaction": "601170904500052575400001", "channel": "alipay", "created": 1504507360, "description": "提現", "extra": { "account": "[email protected]", "name": "姓名" }, "failure_msg": null, "fee": 200, "livemode": true, "metadata": {}, "operation_url": null, "order_no": "hpZTzweXQAA1emNES2vB", "source": "tr_TGS4GKTGGWb5KaHSW1fXjfzT", "status": "succeeded", "time_canceled": null, "time_succeeded": 1504507460, "user": "user_001", "user_fee": 0, "settle_account": null }, { ... }, { ... } ] } } }, "object": "event", "pending_webhooks": 0, "request": "iar_zvXDaT4mTWT4X50ej9K8KWz1" } 事件類型為 batch_withdrawal.failed: { "id": "evt_400171908233490343433258", "created": 1504507460, "livemode": true, "type": "batch_withdrawal.failed", "data": { "object": { "id": "1911709051015122025", "object": "batch_withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "created": 1478833871, "livemode": true, "amount": 80000, "amount_succeeded": 0, "amount_failed": 80000, "amount_canceled": 0, "count": 3, "count_succeeded": 0, "count_failed": 3, "count_canceled": 0, "fee": 0, "metadata": {}, "operation_url": null, "status": "failed", "source": "1811709051435464631", "time_finished": 1504507460, "user_fee": 0, "withdrawals": { "object": "list", "url": null, "has_more": false, "data": [ { "id": "1711711150302360654", "object": "withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "amount": 20000, "asset_transaction": null, "balance_transaction": "601170904500052575400001", "channel": "alipay", "created": 1504507360, "description": "提現", "extra": { "account": "[email protected]", "name": "姓名" }, "failure_msg": "對渠道的請求未能成功。來自渠道的錯誤信息:SEND_FAILED|發送失敗,請更換單號重試", "fee": 200, "livemode": true, "metadata": {}, "operation_url": null, "order_no": "hpZTzweXQAA1emNES2vB", "source": null, "status": "failed", "time_canceled": null, "time_succeeded": null, "user": "user_001", "user_fee": 0, "settle_account": null }, { ... }, { ... } ] } } }, "object": "event", "pending_webhooks": 0, "request": "iar_zbrbnHzz1eP4Pyr10O584eD4" } 事件類型為 batch_withdrawal.partially_succeeded: { "id": "evt_400171908233490343433357", "created": 1504507460, "livemode": true, "type": "batch_withdrawal.partially_succeeded", "data": { "object": { "id": "1911709051015122025", "object": "batch_withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "created": 1478833871, "livemode": true, "amount": 80000, "amount_succeeded": 60000, "amount_failed": 20000, "amount_canceled": 0, "count": 3, "count_succeeded": 2, "count_failed": 1, "count_canceled": 0, "fee": 600, "metadata": {}, "operation_url": null, "status": "partially_succeeded", "source": "1811709051435464631", "time_finished": 1504507460, "user_fee": 0, "withdrawals": { "object": "list", "url": null, "has_more": false, "data": [ { "id": "1711711150302360654", "object": "withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "amount": 20000, "asset_transaction": null, "balance_transaction": "601170904500052575400001", "channel": "alipay", "created": 1504507360, "description": "提現", "extra": { "account": "[email protected]", "name": "姓名" }, "failure_msg": null, "fee": 200, "livemode": true, "metadata": {}, "operation_url": null, "order_no": "hpZTzweXQAA1emNES2vB", "source": "tr_SeDmnHHmDG4KivzDK44aXTW1", "status": "succeeded", "time_canceled": null, "time_succeeded": 1504507460, "user": "user_001", "user_fee": 0, "settle_account": null }, { ... }, { ... } ] } } }, "object": "event", "pending_webhooks": 0, "request": "iar_rvrHqHS4u9WLrPaDGKXzfbbL" } 事件類型為 batch_withdrawal.canceled: { "id": "evt_400171908233490343433259", "created": 1504507460, "livemode": true, "type": "batch_withdrawal.canceled", "data": { "object": { "id": "1911709051015122025", "object": "batch_withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "created": 1478833871, "livemode": true, "amount": 80000, "amount_succeeded": 0, "amount_failed": 0, "amount_canceled": 80000, "count": 3, "count_succeeded": 0, "count_failed": 0, "count_canceled": 3, "fee": 0, "metadata": {}, "operation_url": null, "status": "canceled", "source": null, "time_finished": 1504507460, "user_fee": 0, "withdrawals": { "object": "list", "url": null, "has_more": false, "data": [ { "id": "1711711150302360654", "object": "withdrawal", "app": "app_1Gqj58ynP0mHeX1q", "amount": 20000, "asset_transaction": null, "balance_transaction": "601170904500052575400001", "channel": "alipay", "created": 1504507360, "description": "提現", "extra": { "account": "[email protected]", "name": "姓名" }, "failure_msg": null, "fee": 200, "livemode": true, "metadata": {}, "operation_url": null, "order_no": "hpZTzweXQAA1emNES2vB", "source": null, "status": "succeeded", "time_canceled": 1504507460, "time_succeeded": null, "user": "user_001", "user_fee": 0, "settle_account": null }, { ... }, { ... } ] } } }, "object": "event", "pending_webhooks": 0, "request": "iar_rDujP4ePSinHXbDqXH5KSO0O" } 事件類型為 royalty_settlement.succeeded: { "id": "evt_lqVSy5gbL0A68pS8YKvJzdWA", "created": 1430915345, "livemode": true, "object": "event", "data": { "object": { "id": "170302171104000011", "object": "royalty_settlement", "payer_app": "app_1Gqj58ynP0mHeX1q", "amount": 1, "amount_canceled": 0, "amount_failed": 0, "amount_succeeded": 1, "count": 1, "count_canceled": 0, "count_failed": 0, "count_succeeded": 1, "created": 1488445864, "fee": 0, "livemode": true, "metadata": {}, "method": "unionpay", "operation_url": null, "royalty_transactions": { "object": "list", "page_number": 1, "total_page": 1, "url": "/v1/royalty_transactions", "data": [ { "id": "170302171104000011", "object": "royalty_transaction", "amount": 1, "created": 1430915345, "status": "succeeded", "settle_account": "320217022818142300000901", "source_user": "user_002", "recipient_app": null, "royalty_settlement": "170302171104000011" } ] }, "status": "succeeded", "time_finished": null } }, "pending_webhooks": 0, "type": "royalty_settlement.succeeded", "request": "iar_0K8m90CCeDK8PabXD00yfTq" } 事件類型為 royalty_settlement.failed: { "id": "evt_lqVSy5gbL0A68pS8YKvJzdWA", "created": 1430915345, "livemode": true, "object": "event", "data": { "object": { "id": "170302171104000011", "object": "royalty_settlement", "payer_app": "app_1Gqj58ynP0mHeX1q", "amount": 1, "amount_canceled": 0, "amount_failed": 1, "amount_succeeded": 0, "count": 1, "count_canceled": 0, "count_failed": 1, "count_succeeded": 0, "created": 1488445864, "fee": 0, "livemode": true, "metadata": {}, "method": "unionpay", "operation_url": null, "royalty_transactions": { "object": "list", "page_number": 1, "total_page": 1, "url": "/v1/royalty_transactions", "data": [ { "id": "170302171104000011", "object": "royalty_transaction", "amount": 1, "created": 1430915345, "status": "failed", "settle_account": "320217022818142300000901", "source_user": "user_002", "recipient_app": null, "royalty_settlement": "170302171104000011" } ] }, "status": "failed", "time_finished": null } }, "pending_webhooks": 0, "type": "royalty_settlement.failed", "request": "iar_0K8m90CCeDK8PabXD00yfTq" } 事件類型為 royalty_settlement.partially_succeeded: { "id": "evt_401170321172440000291102", "created": 1490088123, "livemode": true, "type": "royalty_settlement.partially_succeeded", "data": { "object": { "id": "431170321171500001", "object": "royalty_settlement", "payer_app": "app_LibTW1n1SOq9Pin1", "created": 1490087747, "livemode": true, "method": "alipay", "amount": 4, "amount_succeeded": 1, "amount_failed": 3, "amount_canceled": 0, "count": 2, "count_succeeded": 1, "count_failed": 1, "count_canceled": 0, "time_finished": 1490088123, "fee": 100, "metadata": { "userStr": "KTs/YDg3ZFUFONZUC10SuA==" }, "description": null, "operation_url": null, "status": "partially_succeeded", "royalty_transactions": { "object": "list", "url": "/v1/royalty_transactions", "data": [ { "id": "441170321171500001", "object": "royalty_transaction", "amount": 3, "status": "failed", "settle_account": "333333032117170500001234", "source_user": "[email protected]", "recipient_app": null, "royalty_settlement": "431170321171500001", "created": 1490087905 }, { "id": "441170321171500002", "object": "royalty_transaction", "amount": 1, "status": "succeeded", "settle_account": "333333032117170500001234", "source_user": "[email protected]", "recipient_app": null, "royalty_settlement": "431170321171500001", "created": 1490087905 } ], "has_more": false } } }, "object": "event", "request": "iar_uPynnTSmDiT4rPqn9CP8OKCS", "pending_webhooks": 0 } 事件類型為 royalty_settlement.canceled: { "id": "evt_lqVSy5gbL0A68pS8YKvJzdWZ", "created": 1430915345, "livemode": true, "object": "event", "data": { "object": { "id": "170302171104000011", "object": "royalty_settlement", "payer_app": "app_1Gqj58ynP0mHeX1q", "amount": 1, "amount_canceled": 1, "amount_failed": 0, "amount_succeeded": 0, "count": 1, "count_canceled": 1, "count_failed": 0, "count_succeeded": 0, "created": 1488445864, "fee": 0, "livemode": true, "metadata": {}, "method": "unionpay", "operation_url": null, "royalty_transactions": { "object": "list", "page_number": 1, "total_page": 1, "url": "/v1/royalty_transactions", "data": [ { "id": "170302171104000011", "object": "royalty_transaction", "amount": 1, "created": 1430915345, "status": "canceled", "settle_account": "320217022818142300000901", "source_user": "user_002", "recipient_app": null, "royalty_settlement": "170302171104000011" } ] }, "status": "canceled", "time_finished": null } }, "pending_webhooks": 0, "type": "royalty_settlement.canceled", "request": "iar_0K8m90CCeDK8PabXD00yfTq" } 事件類型為 recharge.succeeded: { "id": "evt_400171904343603445333057", "created": 1504507460, "livemode": true, "type": "recharge.succeeded", "data": { "object": { "id": "221170903625155317880001", "object": "recharge", "app": "app_1Gqj58ynP0mHeX1q", "created": 1504408953, "livemode": true, "amount": 4950, "succeeded": true, "time_succeeded": 1504408993, "refunded": false, "user": "user_007", "from": "user_007", "user_fee": 50, "charge": { "id": "ch_XfbnHGLGi5i9Su9qXLu90488", "object": "charge", "created": 1504408953, "livemode": false, "paid": true, "refunded": true, "reversed": false, "app": "app_1Gqj58ynP0mHeX1q", "channel": "upacp", "order_no": "201709031102300167", "client_ip": "127.0.0.1", "amount": 5000, "amount_settle": 4970, "currency": "cny", "subject": "Your Subject", "body": "Your Body", "extra": {}, "time_paid": 1504408993, "time_expire": 1504409953, "time_settle": null, "transaction_no": "201709031102300167211", "refunds": { "object": "list", "url": "/v1/charges/ch_XfbnHGLGi5i9Su9qXLu90488/refunds", "has_more": false, "data": [] }, "amount_refunded": 0, "failure_code": null, "failure_msg": null, "metadata": {}, "credential": {}, "description": "Your Description" }, "balance_bonus": null, "balance_transaction": "601170903591811719520000", "description": "Your Description", "metadata": {} } }, "object": "event", "pending_webhooks": 0, "request": "iar_Hm5SyPH8GGmPT80mfL4CWvj9" } 事件類型為 recharge.refund.succeeded: { "id": "evt_400171904345603445333057", "created": 1504507460, "livemode": true, "type": "recharge.refund.succeeded", "data": { "object": { "id": "221170903625155317880001", "object": "recharge", "app": "app_1Gqj58ynP0mHeX1q", "created": 1504408953, "livemode": true, "amount": 4950, "succeeded": true, "time_succeeded": 1504408993, "refunded": true, "user": "user_007", "from": "user_007", "user_fee": 50, "charge": { "id": "ch_XfbnHGLGi5i9Su9qXLu90488", "object": "charge", "created": 1504408953, "livemode": true, "paid": true, "refunded": true, "reversed": false, "app": "app_1Gqj58ynP0mHeX1q", "channel": "upacp", "order_no": "201709031102300167", "client_ip": "127.0.0.1", "amount": 5000, "amount_settle": 4970, "currency": "cny", "subject": "Your Subject", "body": "Your Body", "extra": {}, "time_paid": 1504408993, "time_expire": 1504409953, "time_settle": null, "transaction_no": "201709031102300167211", "refunds": { "object": "list", "url": "/v1/charges/ch_XfbnHGLGi5i9Su9qXLu90488/refunds", "has_more": false, "data": [ { "id": "re_rHuXb9nD0qvHG4ifnHHmzvX1", "object": "refund", "order_no": "rHuXb9nD0qvHG4ifnHHmzvX1", "amount": 5000, "created": 1504410993, "succeed": true, "status": "succeeded", "time_succeed": 1504410993, "description": "充值退款", "failure_code": null, "failure_msg": null, "metadata": {}, "charge": "ch_XfbnHGLGi5i9Su9qXLu90488", "charge_order_no": "201709031102300167", "transaction_no": "2017090421001004670247373863", "extra": {} } ] }, "amount_refunded": 5000, "failure_code": null, "failure_msg": null, "metadata": {}, "credential": {}, "description": "Your Description" }, "balance_bonus": null, "balance_transaction": "601170903591811719520000", "description": "Your Description", "metadata": {} } }, "object": "event", "pending_webhooks": 0, "request": "iar_zHq9GCaTGGSOOGePOKjfnjPO" }
通過 event
對象的 id
查詢一個已創建的 event
對象。
請求參數 | |
---|---|
id required | 事件
id
。 |
返回
返回一個已存在的 event
對象或者一個錯誤,詳見 錯誤。
GET https://api.pingxx.com/v1/events/{EVENT_ID}
curl https://api.pingxx.com/v1/events/evt_lqVSy5gbL0A68pS8YKvJzdWZ \ -u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC:
{
"id": "evt_lqVSy5gbL0A68pS8YKvJzdWZ",
"created": 1430915345,
"livemode": true,
"object": "event",
"data": {
"object": {
"id": "ch_ebT0y9iPGCKCL0aPy9X1WLmT",
"object": "charge",
"created": 1430915284,
"livemode": true,
"paid": true,
"refunded": false,
"reversed": false,
"app": "app_Xz9iXLn9ebX1SOe1",
"channel": "wx",
"order_no": "as223af2ds",
"client_ip": "127.0.0.1",
"amount": 100,
"amount_settle": 100,
"currency": "cny",
"subject": "Your Subject",
"body": "Your Body",
"extra": [],
"time_paid": 1430915344,
"time_expire": 1431001684,
"time_settle": null,
"transaction_no": "1001680021201505060112980000",
"refunds": {
"object": "list",
"url": "/v1/charges/ch_ebT0y9iPGCKCL0aPy9X1WLmT/refunds",
"has_more": false,
"data": []
},
"amount_refunded": 0,
"failure_code": null,
"failure_msg": null,
"metadata": [],
"credential": [],
"description": null
}
},
"pending_webhooks": 0,
"type": "charge.succeeded",
"request": "iar_0K8m90CCeDK8PabXD00yfTq"
}
下面為支付渠道 channel
屬性值和其對應的支付渠道名稱。
channel屬性值 | 支付渠道名稱 |
---|---|
alipay | 支付寶 App 支付 |
alipay_wap | 支付寶手機網站支付 |
alipay_qr | 支付寶掃碼支付 |
alipay_scan | 支付寶條碼支付 |
alipay_pc_direct | 支付寶電腦網站支付 |
wx | 微信 App 支付 |
wx_pub | 微信公眾號支付 |
wx_pub_qr | 微信掃碼支付 |
wx_pub_scan | 微信刷卡支付 |
wx_wap | 微信 H5 支付 |
wx_lite | 微信小程序支付 |
qpay | QQ 錢包 App 支付 |
qpay_pub | QQ 錢包公眾號支付 |
upacp | 銀聯手機控件支付(銀聯 App 支付) |
upacp_pc | 銀聯網關支付(銀聯 PC 網頁支付) |
upacp_wap | 銀聯手機網站支付 |
upacp_b2b | 銀聯企業網銀支付(銀聯 B2B PC 網頁支付) |
cp_b2b | 銀聯電子企業網銀支付(銀聯電子 B2B PC 網頁支付) |
applepay_upacp | Apple Pay |
cmb_wallet | 招行一網通 |
cmb_pc_qr | 招行 PC 掃碼支付 |
bfb_wap | 百度錢包 |
jdpay_wap | 京東支付 |
yeepay_wap | 易寶支付 |
isv_qr | 線下掃碼(主掃) |
isv_scan | 線下掃碼(被掃) |
isv_wap | 線下掃碼(固定碼) |
cb_alipay | 跨境支付寶 App 支付 |
cb_alipay_wap | 跨境支付寶手機網站支付 |
cb_alipay_pc_direct | 跨境支付寶電腦網站支付 |
cb_wx | 跨境微信 App 支付 |
cb_wx_pub | 跨境微信公眾號支付 |
cb_wx_pub_qr | 跨境微信掃碼支付 |
cb_wx_pub_scan | 跨境微信刷卡支付 |
paypal | PayPal |
balance | 余額 |
特定渠道發起交易時需要的額外參數,以及部分渠道支付成功返回的額外參數。cp_b2b
渠道不需要 extra
參數。
alipay 支付寶 App 支付
extra 參數 | 說明 |
---|---|
hb_fq_num optional,int | 僅適用于支付寶 openapi 接口,hb_fq_num 和 hb_fq_seller_percent 必須同時傳入有效。使用花唄分期要進行的分期數,必須根據支付寶簽約的分期數填寫,可選值:3、6、12。 |
hb_fq_seller_percent optional,int | 僅適用于支付寶 openapi 接口,hb_fq_num 和 hb_fq_seller_percent 必須同時傳入有效。使用花唄分期需要賣家承擔的手續費比例的百分值,傳入100代表100%,可選值:0、100。 |
disable_pay_channels optional,string | 僅適用于支付寶 openapi 接口。禁用支付渠道,用戶不可用禁用的渠道支付,當有多個付款渠道需禁用時,用,分隔(如moneyFund,credit_group),可禁用的支付渠道相關值參考下方 disable_pay_channels 參數說明 。 |
sys_service_provider_id optional,string | 僅適用于支付寶 openapi 接口。系統商編號,該參數作為系統商返傭數據提取的依據,請填寫系統商簽約協議的 PID。 |
need_buyer_real_named optional,string | 適用于支付寶 openapi 接口。是否發起實名校驗,T 代表發起實名校驗;F 代表不發起實名校驗。 |
extern_token optional, string | 僅適用于支付寶 mapi 接口。開放平臺返回的包含賬戶信息的 token(授權令牌,商戶在一定時間內對支付寶某些服務的訪問權限)。通過授權登錄后獲取的
alipay_open_id
,作為該參數的
value
,登錄授權賬戶即會為支付賬戶,32 位字符串。 |
rn_check optional,string | 適用于支付寶 mapi 接口。是否發起實名校驗,T 代表發起實名校驗;F 代表不發起實名校驗。 |
buyer_account response-only,string | 適用于支付寶 openapi 接口。支付完成將額外返回付款用戶的支付寶賬號。 |
fund_bill_list response-only,array | 適用于支付寶 openapi 接口。交易支付使用的資金渠道,詳見下方的 fund_bill_list 渠道透傳返回 。 |
buyer_user_id response-only,string | 適用于支付寶 openapi 接口。買家在支付寶的用戶 id 。 |
voucher_detail_list response-only,array | 適用于支付寶 openapi 接口。本交易支付時使用的所有優惠券信息,詳見下方的 voucher_detail_list 渠道透傳返回 。 |
alipay_wap 支付寶手機網站支付
extra 參數 | 說明 |
---|---|
success_url required string | 支付成功的回調地址。回調 HTTP 方法為
GET |
cancel_url optional, string | 支付取消的回調地址,
app_pay
為 true 時,該字段無效。 |
app_pay optional,boolean | 是否使用支付寶客戶端支付,該參數為 true 時,調用客戶端支付。 |
hb_fq_num optional,int | 僅適用于支付寶 openapi 接口,hb_fq_num 和 hb_fq_seller_percent 必須同時傳入有效。使用花唄分期要進行的分期數,必須根據支付寶簽約的分期數填寫,可選值:3、6、12。 |
hb_fq_seller_percent optional,int | 僅適用于支付寶 openapi 接口,hb_fq_num 和 hb_fq_seller_percent 必須同時傳入有效。使用花唄分期需要賣家承擔的手續費比例的百分值,傳入100代表100%,可選值:0、100。 |
disable_pay_channels optional,string | 僅適用于支付寶 openapi 接口。禁用支付渠道,用戶不可用禁用的渠道支付,當有多個付款渠道需禁用時,用,分隔(如moneyFund,credit_group),可禁用的支付渠道相關值參考下方 disable_pay_channels 參數說明 。 |
need_buyer_real_named optional,string | 適用于支付寶 openapi 接口。是否發起實名校驗,T 代表發起實名校驗;F 代表不發起實名校驗。 |
sys_service_provider_id optional,string | 僅適用于支付寶 openapi 接口。系統商編號,該參數作為系統商返傭數據提取的依據,請填寫系統商簽約協議的 PID。 |
new_version optional,boolean | 2016 年 6 月 16 日之前登錄 Ping++ 管理平臺填寫支付寶手機網站的渠道參數的舊接口商戶,需要更新接口時設置此參數值為 true,6 月 16 號后接入的新接口商戶不需要設置該參數。 |
extern_token optional, string | 僅適用于支付寶 mapi 接口。開放平臺返回的包含賬戶信息的 token(授權令牌,商戶在一定時間內對支付寶某些服務的訪問權限)。通過授權登錄后獲取的
alipay_open_id
,作為該參數的
value
,登錄授權賬戶即會為支付賬戶,32 位字符串。 |
buyer_account response-only, string | 適用于支付寶 openapi 接口。支付完成將額外返回付款用戶的支付寶賬號。 |
fund_bill_list response-only,array | 適用于支付寶 openapi 接口。交易支付使用的資金渠道,詳見下方的 fund_bill_list 渠道透傳返回 。 |
buyer_user_id response-only,string | 適用于支付寶 openapi 接口。買家在支付寶的用戶 id 。 |
voucher_detail_list response-only,array | 適用于支付寶 openapi 接口。本交易支付時使用的所有優惠券信息,詳見下方的 voucher_detail_list 渠道透傳返回 。 |
alipay_qr 支付寶掃碼支付
extra 參數 | 說明 |
---|---|
hb_fq_num optional,int | 使用花唄分期要進行的分期數,hb_fq_num 和 hb_fq_seller_percent 必須同時傳入有效。必須根據支付寶簽約的分期數填寫,可選值:3、6、12。 |
hb_fq_seller_percent optional,int | 使用花唄分期需要賣家承擔的手續費比例的百分值,hb_fq_num 和 hb_fq_seller_percent 必須同時傳入有效。傳入100代表100%,可選值:0、100。 |
disable_pay_channels optional,string | 禁用支付渠道,用戶不可用指定渠道支付,當有多個付款渠道時用
,
分隔(如moneyFund,credit_group),支付渠道相關值參考下方
disable_pay_channels 參數說明
。 |
trade_create boolean,string | 是否使用口碑支付,true 則使用口碑支付。 |
sys_service_provider_id optional,string | 系統商編號,該參數作為系統商返傭數據提取的依據,請填寫系統商簽約協議的 PID。 |
buyer_account optional,string | 支付寶賬號。當 trade_create 為 true 時,buyer_account 和 buyer_user_id 必填一個;當 trade_create 為 false 時,此參數無需填寫,會在支付完成后額外返回。 |
buyer_user_id optional,string | 買家的支付寶唯一用戶 id,2088 開頭的 16 位純數字。當 trade_create 為 true 時,buyer_account 和 buyer_user_id 必填一個;當 trade_create 為 false 時,此參數無需填寫,會在支付完成后額外返回。 |
fund_bill_list response-only,array | 交易支付使用的資金渠道,詳見下方的 fund_bill_list 渠道透傳返回 。 |
voucher_detail_list response-only,array | 本交易支付時使用的所有優惠券信息,詳見下方的 voucher_detail_list 渠道透傳返回 。 |
alipay_scan 支付寶條碼支付
extra 參數 | 說明 |
---|---|
scan_code required string | 客戶端軟件中展示的條碼值,1-32位。 |
terminal_id required string | 終端號(可包含字母、數字、下劃線、中劃線),1-32位。 |
goods_list optional,list | 訂單包含的商品列表信息(json 字符串的長度為1~8000)。 |
operator_id optional,string | 商戶操作員編號(可包含字母、數字、下劃線、中劃線),1-28位。 |
store_id optional,string | 商戶門店編號(可包含字母、數字、下劃線、中劃線),1-32位。 |
sys_service_provider_id optional,string | 系統商編號,1-64位。 |
goods_list 參數說明
參數 | 說明 |
---|---|
goods_id required string | 商品的編號,1-32位。 |
goods_name required string | 商品名稱,1-256位。 |
quantity required int | 商品數量,1-10位。 |
price required string | 商品單價,單位為元,1-9位。 |
goods_category optional,string | 商品類目,1-24位。 |
body optional,string | 商品描述信息,1-1000位。 |
show_url optional,string | 商品的展示地址,1-400位。 |
alipay_pc_direct 支付寶電腦網站支付
extra 參數 | 說明 |
---|---|
success_url optional,string | 支付成功的回調地址。當支付寶電腦網站為 mapi 版本,此參數必傳;當支付寶電腦網站為 openapi 版本,此參數可選。回調 HTTP 方法為
GET |
hb_fq_num optional,int | 僅適用于支付寶 openapi 接口,hb_fq_num 和 hb_fq_seller_percent 必須同時傳入有效。使用花唄分期要進行的分期數,必須根據支付寶簽約的分期數填寫,可選值:3、6、12。 |
hb_fq_seller_percent optional,int | 僅適用于支付寶 openapi 接口,hb_fq_num 和 hb_fq_seller_percent 必須同時傳入有效。使用花唄分期需要賣家承擔的手續費比例的百分值,傳入100代表100%,可選值:0、100。 |
disable_pay_channels optional,string | 僅適用于支付寶 openapi 接口。禁用支付渠道,用戶不可用禁用的渠道支付,當有多個付款渠道需禁用時,用,分隔(如moneyFund,credit_group),可禁用的支付渠道相關值參考下方 disable_pay_channels 參數說明 。 |
qr_pay_mode optional,int | PC 掃碼支付的方式,支持前置模式和跳轉模式。可選值:0、1、2、3、4, qr_pay_mode 說明 。 |
qrcode_width optional,int | 商戶自定義二維碼寬度。
qr_pay_mode
= 4 時該參數生效。 |
sys_service_provider_id optional,string | 僅適用于支付寶 openapi 接口。系統商編號,該參數作為系統商返傭數據提取的依據,請填寫系統商簽約協議的 PID。 |
exter_invoke_ip optional,string | 僅適用于支付寶 mapi 接口。客戶端 IP ,用戶在創建交易時,該用戶當前所使用機器的IP(如果商戶申請后臺開通防釣魚IP地址檢查選項,此字段必填,校驗用)。 |
enable_anti_phishing_key optional,boolean | 僅適用于支付寶 mapi 接口。是否開啟防釣魚網站的驗證參數(如果已申請開通防釣魚時間戳驗證,則此字段必填)。 |
buyer_account response-only,string | 適用于支付寶 openapi 接口。支付完成將額外返回付款用戶的支付寶賬號。 |
buyer_user_id response-only,string | 適用于支付寶 openapi 接口。買家在支付寶的用戶 id 。 |
fund_bill_list response-only,array | 適用于支付寶 openapi 接口。交易支付使用的資金渠道,詳見下方的 fund_bill_list 渠道透傳返回 。 |
voucher_detail_list response-only,array | 適用于支付寶 openapi 接口。本交易支付時使用的所有優惠券信息,詳見下方的 voucher_detail_list 渠道透傳返回 。 |
fund_bill_list 渠道返回參數
extra 參數 | 說明 |
---|---|
fund_channel response-only,string | 僅適用于支付寶 openapi 接口。交易使用的資金渠道,詳見 alipay 支付渠道列表 。 |
amount response-only,string | 僅適用于支付寶 openapi 接口。該支付工具類型所使用的金額。 |
real_amount response-only,string | 僅適用于支付寶 openapi 接口。渠道實際付款金額。 |
alipay 支付渠道列表
extra 參數 | 說明 |
---|---|
COUPON | 支付寶紅包 |
ALIPAYACCOUNT | 支付寶賬戶 |
POINT | 集分寶 |
DISCOUNT | 折扣券 |
PCARD | 預付卡 |
MCARD | 商家儲值卡 |
MDISCOUNT | 商戶優惠券 |
MCOUPON | 商戶紅包 |
PCREDIT | 螞蟻花唄 |
disable_pay_channels 參數說明
extra 參數 | 說明 |
---|---|
balance | 余額 |
moneyFund | 余額寶 |
coupon | 紅包 |
pcredit | 花唄 |
pcreditpayInstallment | 花唄分期 |
creditCard | 信用卡 |
creditCardExpress | 信用卡快捷 |
creditCardCartoon | 信用卡卡通 |
credit_group | 信用支付類型(包含信用卡卡通、信用卡快捷、花唄、花唄分期) |
debitCardExpress | 借記卡快捷 |
mcard | 商戶預存卡 |
pcard | 個人預存卡 |
promotion | 優惠(包含實時優惠+商戶優惠) |
voucher | 營銷券 |
point | 積分 |
mdiscount | 商戶優惠 |
bankPay | 網銀 |
voucher_detail_list 渠道返回參數
extra 參數 | 說明 |
---|---|
id response-only,string | 僅適用于支付寶 openapi 接口。券 id。 |
name response-only,string | 僅適用于支付寶 openapi 接口。券名稱。 |
type response-only,string | 僅適用于支付寶 openapi 接口。當前有三種類型: ALIPAY_FIX_VOUCHER - 全場代金券、ALIPAY_DISCOUNT_VOUCHER - 折扣券、ALIPAY_ITEM_VOUCHER - 單品優惠。注:不排除將來新增其他類型的可能,商家接入時注意兼容性避免硬編碼。 |
amount response-only,string | 僅適用于支付寶 openapi 接口。優惠券面額,它應該會等于商家出資加上其他出資方出資。 |
merchant_contribute response-only,string | 僅適用于支付寶 openapi 接口。商家出資(特指發起交易的商家出資金額)。 |
other_contribute response-only,string | 僅適用于支付寶 openapi 接口。其他出資方出資金額,可能是支付寶,可能是品牌商,或者其他方,也可能是他們的一起出資。 |
memo response-only,string | 僅適用于支付寶 openapi 接口。優惠券備注信息。 |
wx 微信 App 支付
extra 參數 | 說明 |
---|---|
limit_pay optional,string | 指定支付方式,指定不能使用信用卡支付可設置為
no_credit
。 |
goods_tag optional,string | 商品標記,代金券或立減優惠功能的參數。 |
open_id response-only, string | 支付完成后額外返回付款用戶的微信
open_id
。 |
bank_type response-only,string | 支付完成后額外返回付款用戶的付款銀行類型
bank_type
。 |
device_info response-only,string | 設備號:微信支付分配的終端設備號 |
is_subscribe response-only,string | 用戶是否關注公眾賬號,僅在公眾賬號類型支付有效。取值范圍:
Y
或者
N
。
Y
表示關注,
N
表示未關注。 |
coupon_fee response-only,int | 代金券金額。代金券金額 <= 訂單金額,訂單金額 - 代金券金額 = 現金支付金額。 |
coupon_count response-only,int | 代金券使用數量。 |
coupon_type_$n
response-only,string |
代金券類型。
CASH
:充值代金券;
NO_CASH
:非充值代金券。訂單使用代金券時有返回(取值:
CASH
、
NO_CASH
)。
$n
為下標,從0開始編號,舉例:
coupon_type_$0
。 |
coupon_id_$n
response-only,string |
代金券ID,
$n
為下標,從0開始編號。 |
coupon_fee_$n
response-only,int |
單個代金券支付金額,
$n
為下標,從0開始編號。 |
wx_pub 微信公眾號支付
extra 參數 | 說明 |
---|---|
limit_pay optional,string | 指定支付方式,指定不能使用信用卡支付可設置為
no_credit
。 |
goods_tag optional,string | 商品標記,代金券或立減優惠功能的參數。 |
open_id required string | 用戶在商戶
appid
下的唯一標識。點此參考
如何獲取
open_id
。 |
bank_type response-only, string | 支付完成后額外返回付款用戶的付款銀行類型
bank_type
。 |
device_info response-only,string | 設備號:微信支付分配的終端設備號 |
is_subscribe response-only,string | 用戶是否關注公眾賬號,僅在公眾賬號類型支付有效。取值范圍:
Y
或者
N
。
Y
表示關注,
N
表示未關注。 |
coupon_fee response-only,int | 代金券金額。代金券金額 <= 訂單金額,訂單金額 - 代金券金額 = 現金支付金額。 |
coupon_count response-only,int | 代金券使用數量。 |
coupon_type_$n
response-only,string |
代金券類型。
CASH
:充值代金券;
NO_CASH
:非充值代金券。訂單使用代金券時有返回(取值:
CASH
、
NO_CASH
)。
$n
為下標,從0開始編號,舉例:
coupon_type_$0
。 |
coupon_id_$n
response-only,string |
代金券ID,
$n
為下標,從0開始編號。 |
coupon_fee_$n
response-only,int |
單個代金券支付金額,
$n
為下標,從0開始編號。 |
wx_pub_qr 微信掃碼支付
extra 參數 | 說明 |
---|---|
limit_pay optional,string | 指定支付方式,指定不能使用信用卡支付可設置為
no_credit
。 |
product_id required string | 商品 ID,1-32 位字符串。此 id 為二維碼中包含的商品 ID,商戶自行維護。 |
goods_tag optional,string | 商品標記,代金券或立減優惠功能的參數。 |
open_id response-only, string | 支付完成后額外返回付款用戶的微信
open_id
。 |
bank_type response-only, string | 支付完成后額外返回付款用戶的付款銀行類型
bank_type
。 |
device_info response-only,string | 設備號:微信支付分配的終端設備號 |
is_subscribe response-only,string | 用戶是否關注公眾賬號,僅在公眾賬號類型支付有效。取值范圍:
Y
或者
N
。
Y
表示關注,
N
表示未關注。 |
coupon_fee response-only,int | 代金券金額。代金券金額 <= 訂單金額,訂單金額 - 代金券金額 = 現金支付金額。 |
coupon_count response-only,int | 代金券使用數量。 |
coupon_type_$n
response-only,string |
代金券類型。
CASH
:充值代金券;
NO_CASH
:非充值代金券。訂單使用代金券時有返回(取值:
CASH
、
NO_CASH
)。
$n
為下標,從0開始編號,舉例:
coupon_type_$0
。 |
coupon_id_$n
response-only,string |
代金券ID,
$n
為下標,從0開始編號。 |
coupon_fee_$n
response-only,int |
單個代金券支付金額,
$n
為下標,從0開始編號。 |
wx_pub_scan 微信刷卡支付
extra 參數 | 說明 |
---|---|
scan_code required string | 客戶端軟件中展示的條碼值,掃碼設備掃描獲取,1-32位。 |
terminal_id optional,string | 終端號,要求不同終端此號碼不一樣,會顯示在對賬單中,如
A01
、
SH008
等,1-8位。 |
limit_pay optional,string | 指定支付方式,指定不能使用信用卡支付可設置為
no_credit
。 |
goods_tag optional,string | 商品標記,代金券或立減優惠功能的參數,1-32位。 |
open_id response-only, string | 用戶在商戶下的唯一標識。 |
is_subscribe response-only, string | 用戶是否關注公眾賬號,僅在公眾賬號類型支付有效。取值范圍:
Y
或者
N
。
Y
表示關注,
N
表示未關注。 |
bank_type response-only, string | 銀行類型,采用字符串類型的銀行標識。 |
settlement_total_fee response-only, int | 應結訂單金額,當訂單使用了免充值型優惠券后返回該參數。應結訂單金額 = 訂單金額 - 免充值優惠券金額。 |
coupon_fee response-only, int | 代金券金額。代金券金額 <= 訂單金額,訂單金額 - 代金券金額 = 現金支付金額。 |
cash_fee response-only, int | 現金支付金額。 |
promotion_detail response-only, string | 營銷詳情。 |
wx_lite 微信小程序支付
extra 參數 | 說明 |
---|---|
limit_pay optional,string | 指定支付方式,指定不能使用信用卡支付可設置為
no_credit
。 |
goods_tag optional,string | 商品標記,代金券或立減優惠功能的參數。 |
open_id required string | 用戶在商戶
appid
下的唯一標識。點此參考
如何獲取
open_id
。 |
bank_type response-only, string | 支付完成后額外返回付款用戶的付款銀行類型
bank_type
。 |
device_info response-only,string | 設備號:微信支付分配的終端設備號 |
is_subscribe response-only,string | 用戶是否關注公眾賬號,僅在公眾賬號類型支付有效。取值范圍:
Y
或者
N
。
Y
表示關注,
N
表示未關注。 |
coupon_fee response-only,int | 代金券金額。代金券金額 <= 訂單金額,訂單金額 - 代金券金額 = 現金支付金額。 |
coupon_count response-only,int | 代金券使用數量。 |
coupon_type_$n
response-only,string |
代金券類型。
CASH
:充值代金券;
NO_CASH
:非充值代金券。訂單使用代金券時有返回(取值:
CASH
、
NO_CASH
)。
$n
為下標,從0開始編號,舉例:
coupon_type_$0
。 |
coupon_id_$n
response-only,string |
代金券ID,
$n
為下標,從0開始編號。 |
coupon_fee_$n
response-only,int |
單個代金券支付金額,
$n
為下標,從0開始編號。 |
wx_wap 微信 H5 支付
extra 參數 | 說明 |
---|---|
result_url optional,string | 支付完成的回調地址。 |
limit_pay optional,string | 指定支付方式,指定不能使用信用卡支付可設置為
no_credit
。 |
goods_tag optional,string | 商品標記,代金券或立減優惠功能的參數。 |
open_id response-only, string | 支付完成后額外返回付款用戶的微信
open_id
。 |
bank_type response-only, string | 支付完成后額外返回付款用戶的付款銀行類型
bank_type
。 |
device_info response-only,string | 設備號:微信支付分配的終端設備號 |
is_subscribe response-only,string | 用戶是否關注公眾賬號,僅在公眾賬號類型支付有效。取值范圍:
Y
或者
N
。
Y
表示關注,
N
表示未關注。 |
coupon_fee response-only,int | 代金券金額。代金券金額 <= 訂單金額,訂單金額 - 代金券金額 = 現金支付金額。 |
coupon_count response-only,int | 代金券使用數量。 |
coupon_type_$n
response-only,string |
代金券類型。
CASH
:充值代金券;
NO_CASH
:非充值代金券。訂單使用代金券時有返回(取值:
CASH
、
NO_CASH
)。
$n
為下標,從0開始編號,舉例:
coupon_type_$0
。 |
coupon_id_$n
response-only,string |
代金券ID,
$n
為下標,從0開始編號。 |
coupon_fee_$n
response-only,int |
單個代金券支付金額,
$n
為下標,從0開始編號。 |
qpay QQ錢包 App 支付
extra 參數 | 說明 |
---|---|
device required string | 客戶端設備類型,取值范圍: "ios" ,"android"。 |
qpay_pub QQ錢包公眾號支付
extra 參數 | 說明 |
---|---|
device_info optional,string | 調用接口提交的終端設備號。 |
limit_pay optional,string | 支付方式限制,可以針對當前的交易限制用戶的支付方式,如:僅允許使用余額,或者是禁止使用信用卡,詳情見下方 支付方式限制說明 。 |
promotion_tag optional,string | 指定本單參與某個 QQ 錢包活動或活動檔位的標識,包含兩個標識。sale_tag:不同活動的匹配標志;level_tag:同一活動不同優惠檔位的標志,可不填。格式如下(本字段參與簽名):
promotion_tag=urlencode(level_tag=xxx&sale_tag=xxx) |
attach optional,string | 附加數據,在查詢 API 和支付通知中原樣返回,該字段主要用于商戶攜帶訂單的自定義數據。 |
openid response-only,string | 用戶在商戶appid下的唯一標識,示例:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
bank_type response-only,string | 銀行類型,采用字符串類型的銀行卡標識,示例:CCB_DEBIT。值列表詳見 支持的付款銀行列表 。 |
支付方式限制說明
參數 | 說明 |
---|---|
no_balance | 不準使用余額 |
no_credit | 不準使用信用卡 |
no_debit | 不準使用借記卡 |
balance_only | 只準使用余額 |
debit_only | 只準使用借記卡 |
NoBindNoBalan | 簡化注冊用戶不允許用余額 |
upacp 銀聯手機控件支付
extra 參數 | 說明 |
---|---|
pay_type response-only, string | 支付方式(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準)。0001:認證支付;0002:快捷支付;0004:儲值卡支付;0005:IC卡支付;0201:網銀支付;1001:牡丹暢通卡支付;1002:中鐵銀通卡支付;0401:信用卡支付;0402:小額臨時支付;0403:認證支付 2.0;0404:互聯網訂單手機支付;9000:其他無卡支付(如手機客戶端支付)。 |
acc_no response-only, string | 銀行卡號(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準,開通后默認返回打碼后的卡號)。 |
pay_card_type response-only, string | 支付卡類型(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準)。00:未知;01:借記賬戶;02:貸記賬戶;03:準貸記賬戶;04:借貸合一賬戶;05:預付費賬戶;06:半開放預付費賬戶。 |
upacp_wap 銀聯手機網站支付
extra 參數 | 說明 |
---|---|
result_url required string | 支付完成的回調地址。回調 HTTP 方法為
POST |
pay_type response-only, string | 支付方式(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準)。0001:認證支付;0002:快捷支付;0004:儲值卡支付;0005:IC卡支付;0201:網銀支付;1001:牡丹暢通卡支付;1002:中鐵銀通卡支付;0401:信用卡支付;0402:小額臨時支付;0403:認證支付 2.0;0404:互聯網訂單手機支付;9000:其他無卡支付(如手機客戶端支付)。 |
acc_no response-only, string | 銀行卡號(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準,開通后默認返回打碼后的卡號)。 |
pay_card_type response-only, string | 支付卡類型(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準)。00:未知;01:借記賬戶;02:貸記賬戶;03:準貸記賬戶;04:借貸合一賬戶;05:預付費賬戶;06:半開放預付費賬戶。 |
upacp_pc 銀聯網關支付
extra 參數 | 說明 |
---|---|
result_url required string | 支付完成的回調地址。回調 HTTP 方法為
POST |
iss_ins_code optional,string | 直接跳轉到銀行網銀,商戶界面點擊銀行網銀圖標直接跳轉到銀行網銀支付,詳見下方的 iss_ins_code 字段說明 。 |
pay_type response-only, string | 支付方式(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準)。0001:認證支付;0002:快捷支付;0004:儲值卡支付;0005:IC卡支付;0201:網銀支付;1001:牡丹暢通卡支付;1002:中鐵銀通卡支付;0401:信用卡支付;0402:小額臨時支付;0403:認證支付 2.0;0404:互聯網訂單手機支付;9000:其他無卡支付(如手機客戶端支付)。 |
acc_no response-only, string | 銀行卡號(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準,開通后默認返回打碼后的卡號)。 |
pay_card_type response-only, string | 支付卡類型(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準)。00:未知;01:借記賬戶;02:貸記賬戶;03:準貸記賬戶;04:借貸合一賬戶;05:預付費賬戶;06:半開放預付費賬戶。 |
iss_ins_code 字段說明
支持標準網關銀行列表
代碼 | 描述 |
---|---|
ICBC | 工商銀行 |
ABC | 農業銀行 |
BOC | 中國銀行(大額) |
BOCSH | 中國銀行 |
CCB | 建設銀行 |
CMB | 招行銀行 |
SPDB | 浦發銀行 |
GDB | 廣發銀行 |
BOCOM | 交通銀行 |
CNCB | 中信銀行 |
CMBC | 民生銀行 |
CIB | 興業銀行 |
CEB | 光大銀行 |
HXB | 華夏銀行 |
BOS | 上海銀行 |
SRCB | 上海農商 |
PSBC | 郵政儲蓄 |
BCCB | 北京銀行 |
BRCB | 北京農商 |
PAB | 平安銀行 |
支持的獨立借記卡網關銀行列表
代碼 | 描述 |
---|---|
ICBCD | 工商銀行 |
CCBD | 建設銀行 |
CMBD | 招行銀行 |
SPDBD | 上海浦東發展銀行 |
GDBD | 廣發銀行 |
PSBCD | 郵政儲蓄銀行 |
CMBCD | 民生銀行 |
CEBD | 光大銀行 |
HXB | 華夏銀行 |
BOEAD | 東亞銀行 |
ABCD | 中國農業銀行 |
upacp_b2b 銀聯企業網銀支付
extra 參數 | 說明 |
---|---|
result_url required string | 返回商戶結果的前端回調地址。回調 HTTP 方法為
POST |
pay_type response-only, string | 支付方式(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準)。0001:認證支付;0002:快捷支付;0004:儲值卡支付;0005:IC卡支付;0201:網銀支付;1001:牡丹暢通卡支付;1002:中鐵銀通卡支付;0401:信用卡支付;0402:小額臨時支付;0403:認證支付 2.0;0404:互聯網訂單手機支付;9000:其他無卡支付(如手機客戶端支付)。 |
acc_no response-only, string | 銀行卡號(已打碼)。 |
pay_card_type response-only, string | 支付卡類型(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準)。00:未知;01:借記賬戶;02:貸記賬戶;03:準貸記賬戶;04:借貸合一賬戶;05:預付費賬戶;06:半開放預付費賬戶。 |
applepay_upacp Apple Pay
extra 參數 | 說明 |
---|---|
pay_type response-only, string | 支付方式(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準)。0001:認證支付;0002:快捷支付;0004:儲值卡支付;0005:IC卡支付;0201:網銀支付;1001:牡丹暢通卡支付;1002:中鐵銀通卡支付;0401:信用卡支付;0402:小額臨時支付;0403:認證支付 2.0;0404:互聯網訂單手機支付;9000:其他無卡支付(如手機客戶端支付)。 |
acc_no response-only, string | 銀行卡號(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準,開通后默認返回打碼后的卡號)。 |
pay_card_type response-only, string | 支付卡類型(默認不返回,如需返回,需聯系銀聯入網所在收單行提交開通申請,具體開通資料以所在收單行為準)。00:未知;01:借記賬戶;02:貸記賬戶;03:準貸記賬戶;04:借貸合一賬戶;05:預付費賬戶;06:半開放預付費賬戶。 |
jdpay_wap 京東支付
extra 參數 | 說明 |
---|---|
success_url required string | 支付成功頁面跳轉路徑。回調 HTTP 方法為
POST |
fail_url required string | 支付失敗頁面跳轉路徑。 |
user_id required string | 商戶端系統內的用戶唯一賬號。首次支付成功后 user_id 會和用戶登陸的手機號做綁定,下次此 user_id 用戶再發起支付時,無需再次登錄即可完成支付。 |
user_type optional,string | 用戶賬號類型。取值只能為:BIZ |
pre_product optional,string | 前置支付方式。可選值:BAITIAO_FEN(白條分期)、BAITIAO_ONE(白條支付)。 |
installment_num optional,string | 分期數。可選值:3、6、12、24,當 pre_product 為 "BAITIAO_FEN" 時該字段必填。 |
risk_info optional,hash | 風控信息,如需使用白條分期、白條支付,則此字段必傳。詳見下方的 risk_info 字段說明 。 |
receiver_info optional,hash | 收貨信息,如需使用白條分期、白條支付,則此字段建議傳遞。詳見下方的 receiver_info 字段說明 。 |
term_info optional,hash | 終端信息,如需使用白條分期、白條支付,則此字段建議傳遞。詳見下方的 term_info 字段說明 。 |
token optional,string | 用戶交易令牌,用于識別用戶信息,支付成功后會調用
success_url
返回給商戶。商戶可以記錄這個
token
值,當用戶再次支付的時候傳入該
token
,用戶無需再次輸入銀行卡信息,直接輸入短信驗證碼進行支付。32 位字符串。 |
order_type optional,int | 訂單類型,可選值:0、1。值為 0 表示實物商品訂單,值為 1 代表虛擬商品訂單,默認值為 0 。 |
is_mobile optional,boolean | 設置是否通過手機端發起支付,值為
true
時調用手機 h5 支付頁面,值為
false
時調用 PC 端支付頁面,該參數默認值為
true
。 |
pay_list response-only,string | 支付完成后額外返回給用戶的支付方式明細列表,具體參考下方 pay_list 參數說明 。 |
風控信息 risk_info 字段說明
參數 | 說明 |
---|---|
industry_category_code required string | 訂單業務類型。取值范圍:"1":購買商品或提供服務的費用(餐飲、服飾、美容美發、租房、租車、機票、住宿費用等)、"2":充值(會員、虛擬代幣、話費、加油卡等充值)、"3":押金(商品租賃或信用擔保所提供的押金)、"4":其他 |
product_category_id required string | 商品品類編號 |
product_category_name required string | 商品品類名稱 |
merchant_user_id required string | 商戶平臺用戶的唯一賬號。注:用戶賬號是商品端系統的用戶唯一賬號 |
trade_desc optional,string | 商品名稱或訂單描述 |
order_goods_num optional,string | 訂單商品數量 |
收貨信息 receiver_info 字段說明
參數 | 說明 |
---|---|
name optional,string | 收貨人姓名 |
address optional,string | 收貨地址 |
mobile optional,string | 收貨手機號 |
phone optional,string | 收貨人座機 |
email optional,string | 電子郵箱 |
province optional,string | 省份 ID |
city optional,string | 城市 ID |
country optional,string | 區縣 ID |
終端信息 term_info 字段說明
參數 | 說明 |
---|---|
type optional,string | 終端類型 |
ip optional,string | 終端 IP |
mac optional,string | 終端 MAC |
imei optional,string | 終端 IMEI |
idfv optional,string | 終端 IDFV |
adid optional,string | 終端 ADID |
os optional,string | 操作系統 |
os_version optional,string | 操作系統版本 |
term_info_id optional,string | 終端號 |
pay_list 參數說明
參數 | 說明 |
---|---|
payType response-only,int | 支付方式。0:銀行卡,1:打白條(不分期),2:余額,3:優惠券,5:小金庫,6:網關,8:白條分期,9:白條支付(不分期)。 |
amount response-only,int | 交易金額,單位為分。 |
currency response-only,string | 交易幣種,人民幣為
CNY
。 |
tradeTime response-only,string | 交易時間,格式為
yyyyMMddHHmmss
。 |
detail optional,hash | 支付明細信息,具體參考下表 detail 參數說明 。 |
detail 參數 | 說明 |
---|---|
cardHolderName optional,string | 持卡人姓名,掩碼顯示。(支付方式為銀行卡時返回) |
cardHolderMobile optional,string | 持卡人手機號,掩碼顯示。(支付方式為銀行卡時返回) |
cardHolderType optional,string | 證件類型。0:身份證,1:護照,2:軍官證,3:士兵證,4:港奧臺通行證,5:臨時身份證,6:戶口本,7:其它類型證件。(支付方式為銀行卡時返回) |
cardHolderId optional,string | 身份證號,掩碼顯示。(支付方式為銀行卡時返回) |
cardNo optional,string | 卡號,掩碼顯示。(支付方式為銀行卡時返回) |
bankCode optional,string | 銀行編碼。(支付方式為銀行卡時返回) |
cardType optional,string | 銀行卡類型。1:借記卡,2:信用卡。(支付方式為銀行卡時返回) |
payMoney optional,string | 交易金額,單位為分。 |
注: 對于 user_type
, user_id
參數,傳參存在問題請參考 幫助中心。
cmb_wallet 招行一網通
extra 參數 | 說明 |
---|---|
app_pay optional,boolean | 是否使用招商銀行 App 客戶端支付,默認為
false
不使用。注:僅適用于 APP 集成招行一網通支付,H5 支付需傳 "false" |
result_url required string | 支付完成的前端回調地址。使用招商銀行 App 時,此處可傳入
<SCHEME>://pingppcmbwallet
,其中
<SCHEME>
是你自定義的
URL Schemes
,用以支付完成后返回你的 App。 |
p_no optional,string | 客戶協議號,不超過 30 位的純數字字符串。當
app_pay
=
false
時必傳 |
seq optional,string | 協議開通請求流水號,不超過 20 位的純數字字符串,請保證系統內唯一。當
app_pay
=
false
時必傳 |
m_uid optional,string | 協議用戶 ID,不超過 20 位的純數字字符串。當
app_pay
=
false
時必傳 |
mobile optional,string | 協議手機號,11 位數字。當
app_pay
=
false
時必傳 |
address_city optional,string | 訂單收貨城市,六位行政區劃代碼,詳情請參考 全國行政區劃代碼表 |
address_mobile optional,string | 完整手機號或手機號后 4 位 |
product_type optional,string | 商品類型。由商戶自定義,支持字母和數字 |
discount_amount response-only int | 立減金額。僅在支付完成時返回,單位為分 |
注: 對于 p_no、seq、m_uid、mobile
這幾個參數:
Charge
時務必使用同一套參數(確保每個參數都不變),任意參數變更都會導致用戶重新簽約,同一個用戶和招行重新簽約的次數有限制,超限制就會無法簽約 ,導致用戶無法使用。cmb_pc_qr 招行 PC 掃碼支付
extra 參數 | 說明 |
---|---|
result_url required string | 支付完成的前端回調地址。回調 HTTP 方法為
POST |
p_no required string | 客戶協議號。支持的字符集:數字、大小寫字母、 -_ 兩個特殊字符(英文半角)。未簽約(首次支付)客戶,填寫新協議號,并傳入 seq 參數,用于協議開通;已簽約(再次支付)客戶,填寫該客戶已有的協議號。商戶必須對協議號進行管理,確保客戶與協議號一一對應。 |
seq optional,string | 協議開通請求流水號,不超過 20 位的純數字字符串,請保證系統內唯一必傳。當用戶首次支付即 p_no 是未簽約的新協議號時,此參數必填。 |
m_uid optional,string | 商戶系統內用戶唯一標識。用于標識商戶用戶的唯一 ID,不超過 20 位的數字字母組合,建議使用純數字。 |
mobile optional,string | 商戶用戶的手機號。 |
register_time optional,int | 商戶用戶注冊 ID 的注冊時間。 |
new_register optional,boolean | 是否是 24 小時內注冊的 ID。可選值:true、false。 |
city_code optional,string | 粗略地理位置,六位行政區劃代碼,詳情請參考 全國行政區劃代碼表 。 |
address_city optional,string | 訂單收貨城市,六位行政區劃代碼,詳情請參考 全國行政區劃代碼表 。 |
address_mobile optional,string | 完整手機號或手機號后 4 位。 |
product_type optional,string | 商品類型。由商戶自定義,支持字母和數字。 |
card_type response-only string | 支付卡類型。可選值:"02"-一卡通;"03"-信用卡;"07"-他行卡。 |
discount_amount response-only int | 立減金額。僅在支付完成時返回,單位為分 |
注: 對于 p_no、seq、m_uid、mobile
這幾個參數:
Charge
時務必使用同一套參數(確保每個參數都不變),任意參數變更都會導致用戶重新簽約,同一個用戶和招行重新簽約的次數有限制,超限制就會無法簽約 ,導致用戶無法使用。bfb_wap 百度錢包
extra 參數 | 說明 |
---|---|
result_url required string | 支付完成的回調地址。 |
bfb_login required boolean | 是否需要登錄百度錢包來進行支付。 |
yeepay_wap 易寶支付
extra 參數 | 說明 |
---|---|
product_category required string | 商品類別碼,詳見 易寶支付商品類型碼 。 |
identity_id required string | 用戶標識,商戶生成的用戶賬號唯一標識,最長 50 位字符串。 |
identity_type required int | 用戶標識類型,詳見 易寶支付用戶標識類型碼 。 |
terminal_type required int | 終端類型,對應取值 0:IMEI, 1:MAC, 2:UUID, 3:other。 |
terminal_id required string | 終端 ID。 |
user_ua required string | 用戶使用的移動終端的 UserAgent 信息。 |
result_url required string | 前臺通知地址。 |
isv_qr 線下掃碼(主掃)
extra 參數 | 說明 |
---|---|
pay_channel required string | 具體支付渠道,支持:
alipay
、
wx
。 |
terminal_id required string | 上送您系統維護的終端序列號,要求不同終端此號碼不一樣,會顯示在對賬單中,固定 8 位。如沒有終端概念,可使用
00000001
。 |
goods_list optional,string | 商品列表,詳情請參考: goods_list 參數說明 。 |
limit_pay optional,string | 限定支付方式。不能使用信用卡支付可設置為
no_credit
。 |
channel_discount response-only,int | 渠道優惠金額,支付完成的返回參數,單位為分。 |
merchant_discount response-only,int | 商戶優惠金額,支付完成的返回參數,單位為分。 |
buyer_account response-only,string | 渠道賬號,支付完成的返回參數。 |
buyer_user_id response-only,string | 渠道賬號 ID,支付完成的返回參數。 |
isv_scan 線下掃碼(被掃)
extra 參數 | 說明 |
---|---|
scan_code required string | 客戶端軟件中展示的條碼值,掃碼設備掃描獲取。 |
terminal_id required string | 上送您系統維護的終端序列號,要求不同終端此號碼不一樣,會顯示在對賬單中,固定 8 位。如沒有終端概念,可使用
00000001
。 |
goods_list optional,string | 商品列表,詳情請參考: goods_list 參數說明 。 |
limit_pay optional,string | 限定支付方式。不能使用信用卡支付可設置為
no_credit
。 |
pay_channel response-only,string | 用戶支付渠道,支付完成的返回參數。 |
channel_discount response-only,int | 渠道優惠金額,支付完成的返回參數,單位為分。 |
merchant_discount response-only,int | 商戶優惠金額,支付完成的返回參數,單位為分。 |
buyer_account response-only,string | 渠道賬號,支付完成的返回參數。 |
buyer_user_id response-only,string | 渠道賬號 ID,支付完成的返回參數。 |
isv_wap 線下掃碼(固定碼)
extra 參數 | 說明 |
---|---|
pay_channel required string | 具體支付渠道,支持:
alipay
、
wx
。 |
result_url required string | 前端通知地址。支付成功或失敗后,需要跳轉到的地址 URL。回調 HTTP 方法為
GET |
terminal_id required string | 上送您系統維護的終端序列號,要求不同終端此號碼不一樣,會顯示在對賬單中,固定 8 位。如沒有終端概念,可使用
00000001
。 |
goods_list optional,string | 商品列表,詳情請參考: goods_list 參數說明 。 |
limit_pay optional,string | 限定支付方式。不能使用信用卡支付可設置為
no_credit
。 |
open_id optional,string | 用戶在商戶 appid 下的唯一標識。僅中信銀行可用,
pay_channel
為
wx
時必填。點此參考
如何獲取
open_id
。 |
wx_app_id optional,string | 商戶的微信 appid。僅中信銀行可用,
pay_channel
為
wx
時必填。 |
buyer_account optional,string | 買家的支付寶帳號。僅中信銀行可用,
pay_channel
為
alipay
時參數
buyer_account
和
buyer_user_id
必填一個。 |
buyer_user_id optional,string | 買家在支付寶的用戶 id 。僅中信銀行可用,
pay_channel
為
alipay
時參數
buyer_account
和
buyer_user_id
必填一個。 |
goods_list 參數說明
參數 | 類型 | 是否必須 | 描述 | 示例 |
---|---|---|---|---|
goods_name | string | required | 商品名稱 | iphone6s16G |
price | string | required | 單價(單位:分) | 1001 |
goods_num | string | required | 數量 | 1 |
goods_id | string | required | 商戶定義商品編號(一般商品條碼) | iphone6s16G |
unified_goods_id | string | optional | 統一商品編號 | 1001 |
goods_category | string | optional | 商品類目 | 123456 |
body | string | optional | 商品描述信息 | 蘋果手機16G |
show_url | string | optional | 商品的展示網址 | http://www.ycsu.tw |
cb_alipay 跨境支付寶 App 支付
extra 參數 | 說明 |
---|---|
payment_type optional, string | 支付類型。默認值為:1(商品購買) |
split_fund_info optional, array | 分賬列表,上送格式為:
[{"account": "2088866088886666","amount": 1,"desc": "split_desc desc"}]
,詳情參考下方
split_fund_info參數說明
|
settle_currency optional, string | 實際結算的外幣幣種,當
currency
=
cny
(使用人民幣標價)時該參數必填 |
pay_amount response-only, int | 原訂單的人民幣金額,僅在支付成功后返回 |
buyer_account response-only, string | 買家支付寶賬號,僅在支付成功后返回 |
buyer_id response-only, string | 買家在支付寶的用戶 ID,僅在支付成功后返回 |
rate response-only, float | 匯率,僅在支付成功后返回 |
cb_alipay_wap 跨境支付寶手機網站支付
extra 參數 | 說明 |
---|---|
success_url optional, string | 交易付款成功之后,返回到商家網站的 URL |
app_pay optional, boolean | 是否喚起支付寶錢包來進行支付。如果支付寶錢包沒有安裝,則使用 wap 方式支付 |
supplier_name optional, string | 供貨商名字 |
split_fund_info optional, array | 分賬列表,上送格式為:
[{"account": "2088866088886666","amount": 1,"desc": "split_desc desc"}]
,詳情參考下方
split_fund_info參數說明
|
settle_currency optional, string | 實際結算的外幣幣種,當
currency
=
cny
(使用人民幣標價)時該參數必填 |
pay_amount response-only, int | 原訂單的人民幣金額,僅在支付成功后返回 |
buyer_account response-only, string | 買家支付寶賬號,僅在支付成功后返回 |
buyer_id response-only, string | 買家在支付寶的用戶 ID,僅在支付成功后返回 |
rate response-only, float | 匯率,僅在支付成功后返回 |
cb_alipay_pc_direct 跨境支付寶電腦網站支付
extra 參數 | 說明 |
---|---|
success_url optional, string | 交易付款成功之后,返回到商家網站的 URL |
split_fund_info optional, array | 分賬列表,上送格式為:
[{"account": "2088866088886666","amount": 1,"desc": "split_desc desc"}]
,詳情參考下方
split_fund_info參數說明
|
settle_currency optional, string | 實際結算的外幣幣種,當
currency
=
cny
(使用人民幣標價)時該參數必填 |
pay_amount response-only, int | 原訂單的人民幣金額,僅在支付成功后返回 |
buyer_account response-only, string | 買家支付寶賬號,僅在支付成功后返回 |
buyer_id response-only, string | 買家在支付寶的用戶 ID,僅在支付成功后返回 |
rate response-only, float | 匯率,僅在支付成功后返回 |
split_fund_info 參數說明
參數 | 說明 |
---|---|
account required, string | 接受分賬資金的支付寶賬戶ID |
amount required, string | 分賬的金額 |
desc optional, string | 分賬描述信息 |
cb_wx 跨境微信 App 支付
extra 參數 | 說明 |
---|---|
goods_list required string | 商品列表,上送格式為:
[{"goods_name":"iPhone6s 16G","goods_num":"1"},{"goods_name":"iPhone6s 32G","goods_num":"1"}]
,字段解釋:goods_name:商品名稱;goods_num:數量 |
limit_pay optional, string | 指定支付方式,指定不能使用信用卡支付可設置為 no_credit |
is_subscribe response-only, string | 支付成功后額外返回用戶是否關注公眾賬號,僅在公眾賬號類型支付有效,取值范圍:Y 或 N;Y-關注;N-未關注 |
bank_type response-only, string | 支付成功后額外返回銀行類型,采用字符串類型的銀行標識 |
cash_fee response-only, string | 支付成功后額外返回現金支付金額 |
cash_fee_type response-only, string | 支付成功后額外返回現金支付幣種,符合ISO 4217標準的三位字母代碼 |
rate response-only, string | 支付成功后額外返回匯率,標價幣種與支付幣種的兌換比例乘以10的8次方即為此值,例如美元兌換人民幣的比例為6.5,則rate=650000000 |
cb_wx_pub 跨境微信公眾號支付
extra 參數 | 說明 |
---|---|
open_id required string | 用戶在商戶 appid 下的唯一標識 |
goods_list required string | 商品列表,上送格式為:
[{"goods_name":"iPhone6s 16G","goods_num":"1"},{"goods_name":"iPhone6s 32G","goods_num":"1"}]
,字段解釋:goods_name:商品名稱;goods_num:數量 |
limit_pay optional, string | 指定支付方式,指定不能使用信用卡支付可設置為 no_credit |
is_subscribe response-only, string | 支付成功后額外返回用戶是否關注公眾賬號,僅在公眾賬號類型支付有效,取值范圍:Y 或 N;Y-關注;N-未關注 |
bank_type response-only, string | 支付成功后額外返回銀行類型,采用字符串類型的銀行標識 |
cash_fee response-only, int | 支付成功后額外返回現金支付金額 |
cash_fee_type response-only, string | 支付成功后額外返回現金支付幣種,符合ISO 4217標準的三位字母代碼 |
rate response-only, string | 支付成功后額外返回匯率,標價幣種與支付幣種的兌換比例乘以10的8次方即為此值,例如美元兌換人民幣的比例為6.5,則rate=650000000 |
cb_wx_pub_qr 跨境微信掃碼支付
extra 參數 | 說明 |
---|---|
product_id required string | 商品 ID,1-32 位字符串。此 id 為二維碼中包含的商品 ID,商戶自行維護 |
goods_list required string | 商品列表,上送格式為:
[{"goods_name":"iPhone6s 16G","goods_num":"1"},{"goods_name":"iPhone6s 32G","goods_num":"1"}]
,字段解釋:goods_name:商品名稱;goods_num:數量 |
limit_pay optional, string | 指定支付方式,指定不能使用信用卡支付可設置為 no_credit |
is_subscribe response-only, string | 支付成功后額外返回用戶是否關注公眾賬號,僅在公眾賬號類型支付有效,取值范圍:Y 或 N;Y-關注;N-未關注 |
bank_type response-only, string | 支付成功后額外返回銀行類型,采用字符串類型的銀行標識 |
cash_fee response-only, int | 支付成功后額外返回現金支付金額 |
cash_fee_type response-only, string | 支付成功后額外返回現金支付幣種,符合ISO 4217標準的三位字母代碼 |
rate response-only, string | 支付成功后額外返回匯率,標價幣種與支付幣種的兌換比例乘以10的8次方即為此值,例如美元兌換人民幣的比例為6.5,則rate=650000000 |
cb_wx_pub_scan 跨境微信刷卡支付
extra 參數 | 說明 |
---|---|
scan_code required string | 客戶端軟件中展示的條碼值,掃碼設備掃描獲取 |
goods_list required string | 商品列表,上送格式為:
[{"goods_name":"iPhone6s 16G","goods_num":"1"},{"goods_name":"iPhone6s 32G","goods_num":"1"}]
,字段解釋:goods_name:商品名稱;goods_num:數量 |
terminal_id optional, string | 終端號,要求不同終端此號碼不一樣,如A01、SH008等 |
limit_pay optional, string | 指定支付方式,指定不能使用信用卡支付可設置為 no_credit |
open_id response-only, string | 支付成功后額外返回用戶在商戶 app 下的唯一標識(此標識只有在配置渠道參數里面配置了 appid (如果是服務商情景就是子商戶的)渠道才會返回) |
is_subscribe response-only, string | 支付成功后額外返回用戶是否關注公眾賬號,僅在公眾賬號類型支付有效,取值范圍:Y 或 N;Y-關注;N-未關注 |
bank_type response-only, string | 支付成功后額外返回銀行類型,采用字符串類型的銀行標識 |
cash_fee response-only, int | 支付成功后額外返回現金支付金額 |
cash_fee_type response-only, string | 支付成功后額外返回現金支付幣種,符合ISO 4217標準的三位字母代碼 |
rate response-only, string | 支付成功后額外返回匯率,標價幣種與支付幣種的兌換比例乘以10的8次方即為此值,例如美元兌換人民幣的比例為6.5,則rate=650000000 |
paypal PayPal 支付
extra 參數 | 類型 | 是否必須 | 描述 |
---|---|---|---|
result_url | string | required | 支付成功或失敗時的跳轉 url |
cancel_url | string | required | 支付取消時的跳轉 url |
purchase_order | string | optional | 采購單號 |
transaction_detail | hash | optional | 交易明細,詳情參考下方 transaction_detail 參數說明 |
goods_list | list | optional | 商品列表,詳情參考下方 goods_list 參數說明 |
shipping_detail | hash | optional | 快遞地址信息,詳情參考下方 shipping_detail 參數說明 |
payment_id | string | response-only | PayPal payment 對象 ID,在創建 Charge 后返回 |
payer | hash | response-only | 付款用戶信息,在支付完成后返回 |
payee | hash | response-only | 商戶信息,在支付完成后返回 |
transaction_detail 參數說明
參數 | 類型 | 是否必須 | 描述 |
---|---|---|---|
amount | int | optional | 訂單金額 |
tax | int | optional | 稅費 |
shipping | int | optional | 運輸費 |
handling_fee | int | optional | 手續費 |
shipping_discount | int | optional | 運費折扣 |
insurance | int | optional | 保險費 |
gift_wrap | int | optional | 禮品包裝費 |
goods_list 參數說明
參數 | 類型 | 是否必須 | 描述 |
---|---|---|---|
name | string | optinal | 商品名稱 |
description | string | optional | 商品描述信息 |
quantity | string | optional | 商品數量 |
price | int | optional | 商品金額 |
tax | int | optional | 商品稅費 |
sku | string | optional | 商品SKU ID |
shipping_detail 參數說明
參數 | 類型 | 是否必須 | 描述 |
---|---|---|---|
shipping_method | string | optinal | 快遞方式 例如 USPS |
recipient_name | string | optional | 收貨人 |
line1 | string | optional | 地址一 |
line2 | string | optional | 地址二 |
city | string | optional | 城市 |
country_code | string | optional | 城市代碼 |
postal_code | string | optional | 郵編 |
phone | string | optional | 手機號 |
state | string | optional | 州代碼 state-codes |
balance 余額支付
extra 參數 | 說明 |
---|---|
user required string | 使用余額支付所對應的用戶 user id 。注:在創建 Order 時,若后續需要使用 balance 渠道進行支付,則創建 Order 時的參數 uid 必傳,執行 Order Pay 方法時此處 user 參數無需傳;在創建 Charge 時,若后續需要使用 balance 渠道進行支付,此處 user 參數必傳。 |
一、支付渠道參數說明
alipay 支付寶 App 支付
參數 | 說明 |
---|---|
fee_rate optional int | 渠道簽約費率。例如:60代表 0.6% 。 |
alipay_pid required string | 合作者身份(PID),對應商戶申請的支付寶的 partnerId。 |
alipay_app_id optional string | 支付寶商戶 AppID。在參數 alipay_version 為 2.0 時,需要傳入此參數。 |
alipay_account required string | 支付寶賬號。 |
alipay_sign_type optional string | 商戶生成簽名字符串所使用的簽名算法類型,可選值 "rsa" 或 "rsa2" 。當
alipay_version
為 1 時,此處只能填寫 rsa。 |
alipay_security_key required string | 支付寶安全校驗碼(Key)。 |
alipay_mer_app_private_key required string | 應用私鑰。若 alipay_sign_type 為 rsa,則此字段為必填。 |
alipay_app_public_key required string | 支付寶公鑰。若 alipay_sign_type 為 rsa,則此字段為必填。 |
alipay_mer_app_private_key_rsa2 required string | 應用私鑰(RSA2)。若 alipay_sign_type 為 rsa2,則此字段為必填。 |
alipay_app_public_key_rsa2 required string | 支付寶公鑰(RSA2)。若 alipay_sign_type 為 rsa2,則此字段為必填。 |
alipay_version optional string | 支付寶版本,可選值:1、2。1:支付寶1.0接口(mapi);2:支付寶2.0 接口(openapi)。 如何區分支付寶1.0 和2.0 |
alipay_refund_nopwd optional bool | 是否啟用免密接口。支付寶1.0產品:支付寶商家中心 - 我的產品 - 即時到賬無密退款V3 若需開通,請訪問螞蟻商家在線服務或撥打支付寶商家服務熱線。支付寶2.0產品默認開啟此權限。 |
refund_return_fee optional bool | 退款是否退還手續費。 |
alipay_wap 支付寶手機網站支付
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率,例如:60代表 0.6% 。 |
alipay_pid required string | 合作者身份(PID),對應商戶申請的支付寶的 partnerId。 |
alipay_app_id optional string | 支付寶商戶 AppID。在參數 alipay_version 為 2.0 時,需要傳入此參數。 |
alipay_account required string | 支付寶企業賬戶(郵箱)。 |
alipay_sign_type optional string | 商戶生成簽名字符串所使用的簽名算法類型,可選值 "rsa" 或 "rsa2" 。當
alipay_version
為 1 時,此處只能填寫 rsa。 |
alipay_security_key required string | 安全校驗碼(Key)。 |
alipay_mer_wap_private_key optional string | 應用私鑰。若 alipay_sign_type 為 rsa,則此字段為必填。 |
alipay_wap_public_key optional string | 支付寶公鑰。若 alipay_sign_type 為 rsa,則此字段為必填。 |
alipay_mer_wap_private_key_rsa2 optional string | 應用私鑰(RSA2)。若 alipay_sign_type 為 rsa2,則此字段為必填。 |
alipay_wap_public_key_rsa2 optional string | 支付寶公鑰(RSA2)。若 alipay_sign_type 為 rsa2,則此字段為必填。 |
alipay_version optional int | 支付寶版本,可選值:1、2。1:支付寶1.0接口(mapi);2:支付寶2.0 接口(openapi)。 如何區分支付寶1.0 和2.0 |
alipay_refund_nopwd optional bool | 是否啟用免密接口,支付寶1.0產品:支付寶商家中心 - 我的產品 - 即時到賬無密退款V3 若需開通,請訪問螞蟻商家在線服務或撥打支付寶商家服務熱線。支付寶2.0產品默認開啟此權限。 |
refund_return_fee optional bool | 退款是否退還手續費。 |
alipay_pc_direct 支付寶電腦網站支付
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率,例如:60代表 0.6% 。 |
refund_return_fee optional bool | 退款是否退還手續費。 |
alipay_pid required string | 合作者身份(PID),對應商戶申請的支付寶的 partnerId。 |
alipay_account required string | 支付寶企業賬戶(郵箱)。 |
alipay_security_key required string | 安全校驗碼(Key)。 |
alipay_private_key required string | 應用私鑰(非 PKCS8 編碼)。 |
alipay_public_key required string | 支付寶公鑰。 |
alipay_refund_nopwd optional bool | 是否啟用免密接口。支付寶商家中心 - 我的產品 - 即時到賬無密退款 V3 若需開通,請訪問螞蟻商家在線服務或撥打支付寶商家服務熱線。 |
alipay_service_type optional int | 接口名稱,可選值:0、1。0 :
create_direct_pay_by_user
, 1 :公益接口
create_donate_trade_p
。 |
alipay_qr 支付寶掃碼支付
參數 | 說明 |
---|---|
fee_rate optional int | 渠道簽約費率,例如:60代表 0.6% 。 |
alipay_qr_pid required string | 對應商戶申請的支付寶的 partnerId。 |
alipay_qr_app_id required string | 支付寶商戶 AppID。 |
alipay_sign_type optional string | 商戶生成簽名字符串所使用的簽名算法類型,可選值 "rsa" 或 "rsa2" 。 |
alipay_qr_mer_private_key required string | 應用私鑰。若 alipay_sign_type 為 rsa,則此字段為必填。 |
alipay_qr_public_key required string | 支付寶公鑰。若 alipay_sign_type 為 rsa,則此字段為必填。 |
alipay_qr_mer_private_key_rsa2 required string | 應用私鑰(RSA2)。若 alipay_sign_type 為 rsa2,則此字段為必填。 |
alipay_qr_public_key_rsa2 required string | 支付寶公鑰。若 alipay_sign_type 為 rsa2,則此字段為必填。 |
refund_return_fee optional bool | 退款是否退還手續費。 |
wx 微信 App 支付
參數 | 說明 |
---|---|
wx_app_id required string | 微信公眾號身份的唯一標識。微信開放平臺 => 管理中心 => 移動應用 => 查看 |
wx_mch_id required string | 商戶ID。微信支付申請完成之后,在微信商戶平臺的通知郵件中獲取,請確保郵件上的 AppID 與微信開放平臺上的 AppID 一致 |
wx_key required string | 商戶支付密鑰,用于報文簽名及驗簽。微信商戶平臺 => API 安全 =>設置密鑰,將設置的 32 位密鑰填入此處 |
wx_app_secret required string | 微信appSecret。微信開放平臺 => 管理中心 => 移動應用 => 查看 |
wx_operator_id required string | 退款操作員ID。微信商戶平臺 =>員工賬號 =>新增員工賬號,將員工的登錄賬號填入此處 |
wx_client_cert required string | 微信客戶端證書。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
wx_client_key required string | 微信客戶端秘鑰。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
fee_rate optional bool | 渠道簽約費率,例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
wx_pub 微信公眾號支付
參數 | 說明 |
---|---|
fee_rate optional integer | 渠道費率,例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
wx_pub_app_id required string | 微信公眾號AppID(應用 ID),獲取地址:微信公眾平臺 => 開發 => 基本配置 |
wx_pub_mch_id required string | 微信支付商戶ID.微信公眾號支付申請完成之后,在微信商戶平臺的通知郵件中獲取,請確保郵件上的 AppID 與微信公眾平臺上的 AppID 一致。 |
wx_pub_key required string | 商戶支付API 密鑰,用于報文簽名及驗簽。微信商戶平臺 => API 安全 => 設置密鑰,將設置的 32 位密鑰填入此處 |
wx_pub_app_secret required string | 應用密鑰,用于獲取openid。獲取地址:微信公眾平臺 => 開發 => 基本配置 |
wx_pub_operator_id required string | 由商戶添加的退款操作員ID,用于退款、退款查詢。獲取地址:微信商戶平臺 => 員工賬號 => 新增員工賬號,將員工的登錄賬號填入此處 |
wx_pub_client_cert required string | 微信客戶端證書(pem格式,不包含秘鑰),用于退款、退款查詢。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
wx_pub_client_key required string | 微信客戶端證書秘鑰(pem格式),用于退款、退款查詢。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
wx_pub_qr 微信掃碼支付
參數 | 說明 |
---|---|
wx_pub_app_id required string | 微信公眾號AppID(應用 ID),獲取地址:微信公眾平臺 => 開發 => 基本配置 |
wx_pub_mch_id required string | 微信支付商戶ID。微信公眾號支付申請完成之后,在微信商戶平臺的通知郵件中獲取,請確保郵件上的 AppID 與微信公眾平臺上的 AppID 一致。 |
wx_pub_key required string | 商戶支付API 密鑰,用于報文簽名及驗簽。微信商戶平臺 => API 安全 => 設置密鑰,將設置的 32 位密鑰填入此處 |
wx_pub_app_secret required string | 應用密鑰,用于獲取openid。獲取地址:微信公眾平臺 => 開發 => 基本配置 |
wx_pub_operator_id required string | 由商戶添加的退款操作員ID,用于退款、退款查詢。獲取地址:微信商戶平臺 => 員工賬號 => 新增員工賬號,將員工的登錄賬號填入此處 |
wx_pub_client_cert required string | 微信客戶端證書(pem格式,不包含秘鑰),用于退款、退款查詢。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
wx_pub_client_key required string | 微信客戶端證書秘鑰(pem格式),用于退款、退款查詢。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
fee_rate optional integer | 渠道簽約費率。例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
wx_wap 微信 H5 支付
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率,例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
wx_wap_app_id required string | 微信公眾號AppID(應用 ID), 獲取地址:微信公眾平臺 => 開發 => 基本配置 |
wx_wap_mch_id required string | 微信支付商戶ID。微信公眾號支付申請完成之后,在微信商戶平臺的通知郵件中獲取,請確保郵件上的 AppID 與微信公眾平臺上的 AppID 一致。 |
wx_wap_key required string | 商戶支付API 密鑰,用于報文簽名及驗簽。微信商戶平臺 => API 安全 => 設置密鑰,將設置的 32 位密鑰填入此處 |
wx_wap_app_secret required string | 應用密鑰,用于獲取openid。獲取地址:微信公眾平臺 => 開發 => 基本配置 |
wx_wap_operator_id required string | 由商戶添加的退款操作員ID,用于退款、退款查詢。獲取地址:微信商戶平臺 => 員工賬號 => 新增員工賬號,將員工的登錄賬號填入此處 |
wx_wap_client_cert required string | 微信客戶端證書(pem格式,不包含秘鑰),用于退款、退款查詢。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
wx_wap_client_key required string | 微信客戶端證書秘鑰(pem格式),用于退款、退款查詢。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
wx_lite 微信小程序支付
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率,例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
wx_lite_app_id required string | 小程序 AppID,微信小程序=>設置=>開發設置 |
wx_lite_mch_id required string - | 微信支付商戶號,申請小程序支付時,若選擇使用已有的公眾號支付,請填寫公眾號支付商戶號;否則,請在新申請的微信商戶平臺的通知郵件中獲取商戶號,確保郵件上的 AppID 與微信小程序的一致 |
wx_lite_key required string | API 密鑰,微信商戶平臺 => API 安全 => 設置密鑰,將設置的 32 位密鑰填入此處 |
wx_lite_app_secret required string | 小程序 AppSecret,微信小程序=>設置=>開發設置 |
wx_lite_operator_id required string | 員工登錄帳號,獲取地址:微信商戶平臺 => 員工賬號 => 新增員工賬號,將員工的登錄賬號填入此處 |
wx_lite_client_cert required string | API 證書,微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
wx_lite_client_key required string | API 證書密鑰,微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
upacp 銀聯手機支付
參數 | 說明 |
---|---|
upacp_mer_id required string | 商戶號 |
upacp_client_cert required string | 安全證書(pfx 格式) |
upacp_client_key optional string | 安全證書密碼 |
upacp_is_encrypted_params optional bool | 是否配置敏感數據加密 |
fee_rate optional int | 渠道簽約費率 |
refund_return_fee optional bool | 退款是否退還手續費。 |
upacp_pc 銀聯網關支付
參數 | 說明 |
---|---|
upacp_mer_id required string | 銀聯渠道商戶號 |
upacp_client_cert required string | 安全證書(pfx 格式) |
upacp_client_key optional string | 安全證書密碼,需配置。 |
upacp_is_encrypted_params optional bool | 是否配置敏感數據加密 |
fee_rate optional int | 渠道簽約費率 |
refund_return_fee optional bool | 退款是否退還手續費。 |
upacp_wap 銀聯手機網站支付
參數 | 說明 |
---|---|
upacp_mer_id required string | 銀聯渠道商戶號 |
upacp_client_cert required string | 安全證書(pfx 格式) |
upacp_client_key optional string | 安全證書密碼,需配置 |
upacp_is_encrypted_params optional bool | 是否配置敏感數據加密 |
fee_rate optional int | 渠道簽約費率 |
refund_return_fee optional bool | 退款是否退還手續費。 |
cp_b2b 銀聯電子企業網銀支付
參數 | 說明 |
---|---|
mer_id required string | 銀聯渠道商戶號 |
sign_file required string | 交易證書 |
sign_pass required string | 交易證書密碼 |
verify_file required string | ChinaPay 簽名校驗證書 |
tran_type required string | 支付業務類型 |
fee_rate optional int | 渠道簽約費率 |
refund_return_fee optional bool | 退款是否退還手續費。 |
upacp_b2b 銀聯企業網銀支付
參數 | 說明 |
---|---|
upacp_b2b_mer_id required string | 銀聯渠道商戶號 |
upacp_b2b_client_cert required string | 銀聯企業證書 |
fee_type optional int | 費率類型。可選值:2,表示費率為每筆固定值;1,表示百分比費率。默認值為 2 |
fee_rate optional int | 渠道簽約費率 |
yeepay_wap 易寶支付
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率。例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
yeepay_mer_id required string | 易寶商戶賬號編號,易寶商戶平臺 => 系統管理 => RSA 公鑰管理 |
yeepay_public_key required string | 易寶 RSA 公鑰,易寶商戶平臺 => 系統管理 => RSA 公鑰管理 => 一鍵生成 RSA 密鑰 |
yeepay_mer_private_key required string | 商戶 RSA 私鑰,易寶商戶平臺 => 系統管理 => RSA 公鑰管理 =>一鍵生成 RSA 密鑰 |
jdpay_wap 京東支付
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率。例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
jdpay_mer_id required string | 京東支付移動端待結算賬戶,京東錢包企業站 => 資金管理 => 賬戶查詢,一般是 9 位數字商戶號 +00X,如 001,002,比如 123456789001 |
jdpay_des_key required string | DES 密鑰,京東錢包企業站 => 安全中心 => 密鑰設置 |
jdpay_md5_key required string | MD5 密鑰,京東錢包企業站 => 安全中心 => 密鑰設置 |
jdpay_public_key required string | 京東支付公鑰RSA 公鑰,非 PKCS8 編碼 |
jdpay_mer_private_key required string | 商戶私鑰(非 PKCS8 編碼) ,請聯系京東獲取 pem 格式的 RSA 私鑰 |
jdpay_version optional string | 京東支付版本 |
cmb_wallet 招行一網通
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率。例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
cmb_bank_no required string | 網銀編號(招行參數郵件中「企業網銀編號」的內容) |
cmb_br_id required string | 分行號,招行參數郵件中「商戶號」項目下的前四位數字 |
cmb_co_id required string | 商戶號,招行參數郵件中「商戶號」項目下的后六位數字 |
cmb_co_password required string | 商戶密碼,商戶平臺重置后的密碼 |
cmb_secret_key required string | 商戶密鑰,商戶平臺 =>商戶密鑰 |
cmb_private_key required string | 商戶私鑰 |
cmb_version optional int | 招行版本 |
applepay_upacp Apple Pay
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率。例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
upacp_mer_id required string | 銀聯渠道商戶號 |
upacp_client_cert required string | 安全證書(pfx 格式) |
upacp_client_key optional string | 安全證書密碼 |
upacp_is_encrypted_params optional bool | 是否配置敏感數據加密 |
upacp_merchant_id required string | Apple 開發者中心商戶 ID |
mode optional int | 是否是測試模式(銀聯下發的測試模式參數,有別于 Ping++ 測試模式,請注意不要混淆)。0:測試模式,1:正式模式 |
qpay QQ錢包 App 支付
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率 |
refund_return_fee optional bool | 退款是否退還手續費。 |
qpay_partner_id required string | QQ 錢包商戶號 |
qpay_partner_key required string | 商戶密鑰 |
qpay_operator_id required string | 操作員 ID |
qpay_operator_pass required string | 操作員密碼 |
qpay_client_cert required string | 商戶證書 |
qpay_client_cert_pass required string | 商戶證書密碼 |
qpay_ios_appid optional string | QQ 錢包開放平臺 App
id
(iOS) |
qpay_ios_appkey optional string | QQ 錢包開放平臺 App Key (iOS) |
qpay_android_appid optional string | QQ 錢包開放平臺 App
id
(Android) |
qpay_android_appkey optional string | QQ 錢包開放平臺 App Key (Android) |
qpay_pub QQ錢包公眾號支付
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率 |
refund_return_fee optional bool | 退款是否退還手續費。 |
qpay_pub_partner_id required string | QQ 錢包商戶號 |
qpay_pub_partner_key required string | 商戶密鑰 |
qpay_pub_operator_id required string | 操作員 ID |
qpay_pub_operator_pass required string | 操作員密碼 |
qpay_pub_client_cert required string | 商戶證書 |
qpay_pub_client_cert_pass required string | 商戶證書密碼 |
qpay_pub_appid optional string | QQ 錢包開放平臺 App ID |
bfb_wap 百度錢包
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率。例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
bfb_sp required string | 商戶 ID |
bfb_key required string | 百度錢包合作密鑰 |
isv_qr 線下掃碼(主掃)
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率。例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
mer_id required string | 商戶號 |
inst_id required string | 機構號 |
key required string | 簽名私鑰 |
support_refund required boolean | 是否支持退款。true:支持;false:不支持 |
isv_scan 線下掃碼(被掃)
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率。例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
mer_id required string | 商戶號 |
inst_id required string | 機構號 |
key required string | 簽名私鑰 |
support_refund required boolean | 是否支持退款。true:支持;false:不支持 |
isv_wap 線下掃碼(固定碼)
參數 | 說明 |
---|---|
fee_rate optional int | 渠道費率。例如:60代表 0.6% |
refund_return_fee optional bool | 退款是否退還手續費。 |
mer_id required string | 商戶號 |
inst_id required string | 機構號 |
key required string | 簽名私鑰 |
support_refund required boolean | 是否支持退款。true:支持;false:不支持 |
二、企業付款渠道參數說明
alipay 支付寶企業付款
參數 | 說明 |
---|---|
fee_rate optional int | 渠道簽約費率。例如:60代表 0.6% 。 |
alipay_pid required string | 合作者身份(PID),對應商戶申請的支付寶的 partnerId。 |
alipay_app_id optional string | 支付寶商戶 AppID。在參數 alipay_version 為 2.0 時,需要傳入此參數。 |
alipay_account required string | 支付寶賬號。 |
alipay_account_name required string | 公司名稱。 |
alipay_sign_type optional string | 商戶生成簽名字符串所使用的簽名算法類型,傳 rsa 或 rsa2 其中一種。 |
alipay_security_key required string | 支付寶安全校驗碼(Key)。 |
alipay_private_key required string | 應用私鑰。若 alipay_sign_type 為 rsa,則此字段為必填。 |
alipay_public_key required string | 支付寶公鑰。若 alipay_sign_type 為 rsa,則此字段為必填。 |
alipay_private_key_rsa2 required string | 應用私鑰(RSA2)。若 alipay_sign_type 為 rsa2,則此字段為必填。 |
alipay_public_key_rsa2 required string | 支付寶公鑰(RSA2)。若 alipay_sign_type 為 rsa2,則此字段為必填。 |
alipay_version optional string | 支付寶版本,可選值:1、2。1:支付寶1.0接口(mapi);2:支付寶2.0 接口(openapi)。 如何區分支付寶1.0 和2.0 |
unionpay 銀聯電子代付
參數 | 說明 |
---|---|
fee_type optional int | 渠道費率類型,可選值:1、2。1:萬分比,2:固定金額(單位為分)。 |
fee_rate optional int | 渠道簽約費率。例如:60代表 0.6% 。 |
mer_id required string | 商戶號。 |
priv_key required string | 銀聯電子代付私鑰。 |
pub_key required string | 銀聯電子代付公鑰。 |
wx_pub 微信公眾號企業付款
參數 | 說明 |
---|---|
fee_rate optional integer | 渠道費率,例如:60代表 0.6% |
wx_pub_app_id required string | 微信公眾號AppID(應用 ID),獲取地址:微信公眾平臺 => 開發 => 基本配置 |
wx_pub_mch_id required string | 微信支付商戶ID。微信公眾號支付申請完成之后,在微信商戶平臺的通知郵件中獲取,請確保郵件上的 AppID 與微信公眾平臺上的 AppID 一致。 |
wx_pub_key required string | 商戶支付 API 密鑰,用于報文簽名及驗簽。微信商戶平臺 => API 安全 => 設置密鑰,將設置的 32 位密鑰填入此處 |
wx_pub_app_secret required string | 應用密鑰,用于獲取openid。獲取地址:微信公眾平臺 => 開發 => 基本配置 |
wx_pub_operator_id required string | 由商戶添加的退款操作員ID,用于退款、退款查詢。獲取地址:微信商戶平臺 => 員工賬號 => 新增員工賬號,將員工的登錄賬號填入此處 |
wx_pub_client_cert required string | 微信客戶端證書(pem格式,不包含秘鑰),用于退款、退款查詢。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
wx_pub_client_key required string | 微信客戶端證書秘鑰(pem格式),用于退款、退款查詢。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
wx_lite 微信小程序企業付款
參數 | 說明 |
---|---|
fee_rate optional integer | 渠道費率,例如:60代表 0.6% |
wx_lite_app_id required string | 小程序 AppID(應用 ID)。獲取地址:微信公眾平臺 => 設置 => 開發設置 |
wx_lite_mch_id required string | 微信支付商戶 ID。在微信商戶平臺的通知郵件中獲取,請確保郵件上的 AppID 與微信公眾平臺上的 AppID 一致 |
wx_lite_key required string | 商戶支付 API 密鑰,用于報文簽名及驗簽。微信商戶平臺 => API 安全 => 設置密鑰,將設置的 32 位密鑰填入此處 |
wx_lite_app_secret required string | 小程序 AppSecret(應用密鑰)。獲取地址:微信公眾平臺 => 設置 => 開發設置 |
wx_lite_operator_id required string | 由商戶添加的退款操作員ID,用于退款、退款查詢。獲取地址:微信商戶平臺 => 員工賬號 => 新增員工賬號,將員工的登錄賬號填入此處 |
wx_lite_client_cert required string | 微信客戶端 API 證書(pem格式,不包含秘鑰),用于退款、退款查詢。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
wx_lite_client_key required string | 微信客戶端 API 證書秘鑰(pem格式),用于退款、退款查詢。微信商戶平臺 => API 安全 => API 證書 =>下載證書 |
jdpay 京東代付
參數 | 說明 |
---|---|
fee_type optional int | 渠道費率類型,可選值:1、2。1:萬分比,2:固定金額(單位為分)。 |
fee_rate optional int | 渠道費率。例如:60代表 0.6% 。 |
jdpay_mer_id required string | 商戶號。 |
jdpay_mer_sign_key required string | 密鑰。 |
jdpay_mer_public_key required string | 京東支付公鑰 RSA 公鑰,非 PKCS8 編碼。 |
jdpay_mer_private_key required string | 商戶私鑰(非 PKCS8 編碼) ,請聯系京東獲取 pem 格式的 RSA 私鑰。 |
jdpay_public_key required string | 京東支付公鑰 RSA 公鑰。 |
allinpay 通聯代付
參數 | 說明 |
---|---|
fee_type optional int | 渠道費率類型,可選值:1、2。1:萬分比,2:固定金額(單位為分)。 |
fee_rate optional int | 渠道費率。例如:60代表 0.6% 。 |
allinpay_mer_id required string | 商戶號。 |
allinpay_mer_username required string | 系統對接用戶名。 |
allinpay_mer_password required string | 商戶后臺密碼。 |
allinpay_mer_private_key required string | 私鑰證書(p12)。 |
allinpay_public_key required string | 公鑰證書(cer)。 |
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "alipay",
"params": {
"alipay_pid": "2088111111111111",
"alipay_app_id": "2016666666666666",
"alipay_account": "[email protected]",
"alipay_security_key": "a5srakrbci3nf1pracb52xcs9xlhu8gu",
"alipay_mer_app_private_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----",
"alipay_app_public_key": "-----BEGIN PUBLIC KEY----- your public key
-----END PUBLIC KEY-----",
"alipay_mer_app_private_key_rsa2": null,
"alipay_app_public_key_rsa2": null,
"alipay_version": 1,
"alipay_refund_nopwd": true
},
"banned": false,
"banned_msg": "your banned_msg",
"description": "Your alipay description"
}'
{
"object": "channel",
"channel": "alipay",
"banned": false,
"banned_msg": "your banned_msg",
"created": 1494854723,
"description": "Your alipay description",
"params": {
"fee_rate": null,
"refund_return_fee": true,
"alipay_pid": "2088111111111111",
"alipay_app_id": "2016666666666666",
"alipay_account": "[email protected]",
"alipay_security_key": "a5srakrbci3nf1pracb52xcs9xlhu8gu",
"alipay_mer_app_private_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----",
"alipay_app_public_key": "-----BEGIN PUBLIC KEY----- your public key-----END PUBLIC KEY-----",
"alipay_mer_app_private_key_rsa2": null,
"alipay_app_public_key_rsa2": null,
"alipay_version": 1,
"alipay_refund_nopwd": true
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496917659" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "alipay_wap",
"banned": false,
"banned_msg": null,
"description": "description for channel alipay_wap",
"params": {
"fee_rate": 8,
"refund_return_fee": true,
"alipay_pid": "2088111111111111",
"alipay_app_id": "8888888888888888",
"alipay_account": "[email protected]",
"alipay_sign_type": "rsa",
"alipay_security_key": "yp019rfh1jvc4ccrnt5kj75266ezjzaz",
"alipay_mer_wap_private_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----",
"alipay_wap_public_key": "-----BEGIN PUBLIC KEY----- your public key-----END PUBLIC KEY-----",
"alipay_mer_wap_private_key_rsa2": null,
"alipay_wap_public_key_rsa2": null,
"alipay_version": 2,
"alipay_refund_nopwd": true
}
}'
{
"object": "channel",
"channel": "alipay_wap",
"banned": false,
"banned_msg": null,
"created": 1496917659,
"description": "description for channel alipay_wap",
"params": {
"fee_rate": 8,
"refund_return_fee": true,
"alipay_pid": "2088111111111111",
"alipay_app_id": "8888888888888888",
"alipay_account": "[email protected]",
"alipay_sign_type": "rsa",
"alipay_security_key": "yp019rfh1jvc4ccrnt5kj75266ezjzaz",
"alipay_mer_wap_private_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----",
"alipay_wap_public_key": "-----BEGIN PUBLIC KEY----- your public key-----END PUBLIC KEY-----",
"alipay_mer_wap_private_key_rsa2": null,
"alipay_wap_public_key_rsa2": null,
"alipay_version": 2,
"alipay_refund_nopwd": true
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496917936" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "alipay_pc_direct",
"banned": false,
"banned_msg": null,
"description": "description for channel alipay_pc_direct",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"alipay_pid": "2088111111111111",
"alipay_account": "[email protected]",
"alipay_security_key": "yp019rfh1jvc4ccrnt5kj75266ezjzaz",
"alipay_private_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----",
"alipay_public_key": "-----BEGIN PUBLIC KEY----- your public key-----END PUBLIC KEY-----",
"alipay_refund_nopwd": true,
"alipay_service_type": 0
}
}'
{
"object": "channel",
"channel": "alipay_pc_direct",
"banned": false,
"banned_msg": null,
"created": 1496917936,
"description": "description for channel alipay_pc_direct",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"alipay_pid": "2088111111111111",
"alipay_account": "[email protected]",
"alipay_security_key": "yp019rfh1jvc4ccrnt5kj75266ezjzaz",
"alipay_private_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----",
"alipay_public_key": "-----BEGIN PUBLIC KEY----- your public key-----END PUBLIC KEY-----",
"alipay_refund_nopwd": true,
"alipay_service_type": 0
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "alipay_qr",
"params": {
"alipay_qr_pid": "2088111111111111",
"alipay_qr_app_id": "8888888888888888",
"alipay_sign_type": "rsa",
"alipay_qr_mer_private_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----",
"alipay_qr_public_key": "-----BEGIN PUBLIC KEY----- your public key-----END PUBLIC KEY-----",
"alipay_qr_mer_private_key_rsa2": null,
"alipay_qr_public_key_rsa2": null
},
"banned": false,
"banned_msg": "your banned_msg",
"description": "Your alipay_qr description"
}'
{
"object": "channel",
"channel": "alipay_qr",
"banned": false,
"banned_msg": "your banned_msg",
"created": 1494853598,
"description": "Your alipay_qr description",
"params": {
"alipay_qr_pid": "2088111111111111",
"alipay_qr_app_id": "8888888888888888",
"alipay_sign_type": "rsa",
"alipay_qr_mer_private_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----",
"alipay_qr_public_key": "-----BEGIN PUBLIC KEY----- your public key-----END PUBLIC KEY-----",
"alipay_qr_mer_private_key_rsa2": null,
"alipay_qr_public_key_rsa2": null
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "wx",
"params": {
"wx_app_id": "wxv2eefqfjfylvtdx3",
"wx_mch_id": "1266666666",
"fee_rate": 200,
"refund_return_fee": true,
"wx_key": "8v0QFJTOHbZE7d5tG97LZNv5bhrvkpYS",
"wx_app_secret": "kp9qzseg33lbhgunp2zfgulrbcmmsbfd",
"wx_operator_id": "[email protected]",
"wx_client_cert": "-----BEGIN CERTIFICATE-----**your cert **-----END CERTIFICATE-----",
"wx_client_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----"
},
"banned": false,
"banned_msg": "your banned_msg",
"description": "Your description"
}'
{
"object": "channel",
"channel": "wx",
"banned": false,
"banned_msg": "your banned_msg",
"created": 1494850516,
"description": "Your wx channel description",
"params": {
"wx_app_id": "wxv2eefqfjfylvtdx3",
"wx_mch_id": "1266666666",
"fee_rate": 200,
"refund_return_fee": true,
"wx_key": "8v0QFJTOHbZE7d5tG97LZNv5bhrvkpYS",
"wx_app_secret": "kp9qzseg33lbhgunp2zfgulrbcmmsbfd",
"wx_operator_id": "[email protected]",
"wx_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_client_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----"
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496923177" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "wx_pub",
"banned": false,
"banned_msg": null,
"description": "description for channel wx_pub",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"wx_pub_app_id": "wxqjztoo4kaxjabcmj",
"wx_pub_mch_id": "10066666",
"wx_pub_key": "65F1DD9AA103883118E7A5B076453BCC",
"wx_pub_app_secret": "1cbdd4af01854247c8202f970ecc81fa",
"wx_pub_operator_id": "[email protected]",
"wx_pub_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_pub_client_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----"
}
}'
{
"object": "channel",
"channel": "wx_pub",
"banned": false,
"banned_msg": null,
"created": 1496923177,
"description": "description for channel wx_pub",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"wx_pub_app_id": "wxqjztoo4kaxjabcmj",
"wx_pub_mch_id": "10066666",
"wx_pub_key": "65F1DD9AA103883118E7A5B076453BCC",
"wx_pub_app_secret": "1cbdd4af01854247c8202f970ecc81fa",
"wx_pub_operator_id": "[email protected]",
"wx_pub_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_pub_client_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----"
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "wx_pub_qr",
"params": {
"wx_pub_app_id": "wx95aa6688abcd22cc",
"wx_pub_mch_id": "10066666",
"fee_rate": 60,
"refund_return_fee": true,
"wx_pub_key": "g3ev8sxhlt1ppbhaqobsnwkegalqelhk",
"wx_pub_app_secret": "PLgo4E5QYx6d8dNo1PHOLRssSEJWqQHG",
"wx_pub_operator_id": "[email protected]",
"wx_pub_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_pub_client_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----"
},
"banned": false,
"banned_msg": "your banned_msg",
"description": "Your description"
}'
{
"object": "channel",
"channel": "wx_pub_qr",
"banned": false,
"banned_msg": "your banned_msg",
"created": 1494849219,
"description": "Your description",
"params": {
"wx_pub_app_id": "wx95aa6688abcd22cc",
"wx_pub_mch_id": "10066666",
"fee_rate": 60,
"refund_return_fee": true,
"actual_channel": null,
"wx_pub_key": "g3ev8sxhlt1ppbhaqobsnwkegalqelhk",
"wx_pub_app_secret": "PLgo4E5QYx6d8dNo1PHOLRssSEJWqQHG",
"wx_pub_operator_id": "[email protected]",
"wx_pub_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_pub_client_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----"
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496925827" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "wx_wap",
"banned": false,
"banned_msg": null,
"description": "description for channel wx_wap",
"params": {
"fee_rate": 150,
"refund_return_fee": true,
"wx_wap_app_id": "wxqjztoo4kaxjabcmj",
"wx_wap_mch_id": "10066666",
"wx_wap_key": "65F1DD9AA103883118E7A5B076453BCC",
"wx_wap_app_secret": "1cbdd4af01854247c8202f970ecc81fa",
"wx_wap_operator_id": "[email protected]",
"wx_wap_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_wap_client_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----"
}
}'
{
"object": "channel",
"channel": "wx_wap",
"banned": false,
"banned_msg": null,
"created": 1496925827,
"description": "description for channel wx_wap",
"params": {
"fee_rate": 150,
"refund_return_fee": true,
"wx_wap_app_id": "wxqjztoo4kaxjabcmj",
"wx_wap_mch_id": "10066666",
"wx_wap_key": "65F1DD9AA103883118E7A5B076453BCC",
"wx_wap_app_secret": "1cbdd4af01854247c8202f970ecc81fa",
"wx_wap_operator_id": "[email protected]",
"wx_wap_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_wap_client_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----"
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496926039" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "wx_lite",
"banned": false,
"banned_msg": null,
"description": "description for channel wx_lite",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"wx_lite_app_id": "wxqjztoo4kaxjabcmj",
"wx_lite_mch_id": "10066666",
"wx_lite_key": "65F1DD9AA103883118E7A5B076453BCC",
"wx_lite_app_secret": "1cbdd4af01854247c8202f970ecc81fa",
"wx_lite_operator_id": "[email protected]",
"wx_lite_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_lite_client_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----"
}
}'
{
"object": "channel",
"channel": "wx_lite",
"banned": false,
"banned_msg": null,
"created": 1496926039,
"description": "description for channel wx_lite",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"wx_lite_app_id": "wxqjztoo4kaxjabcmj",
"wx_lite_mch_id": "10066666",
"wx_lite_key": "65F1DD9AA103883118E7A5B076453BCC",
"wx_lite_app_secret": "1cbdd4af01854247c8202f970ecc81fa",
"wx_lite_operator_id": "[email protected]",
"wx_lite_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_lite_client_key": "-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----"
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "upacp",
"params": {
"fee_rate": "100",
"refund_return_fee": true,
"upacp_mer_id": "808880088888838",
"upacp_client_cert": "your client cert"
},
"banned": false,
"banned_msg": "your banned_msg",
"description": "Your upacp description"
}'
{
"object": "channel",
"channel": "upacp",
"banned": false,
"banned_msg": "your banned_msg",
"created": 1494856019,
"description": "Your upacp description",
"params": {
"refund_return_fee": true,
"fee_rate": "100",
"upacp_mer_id": "808880088888838",
"upacp_client_cert": "Bag Attributes\n localKeyID: 01 00 00 00 \n friendlyName: {12F88888-FFFF-ABCD-6666-02EF666666FF}\n Microsoft CSP Name: Microsoft Enhanced Cryptographic Provider v1.0\nKey Attributes\n X509v3 Key Usage: 10 \n-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----\nBag Attributes\n localKeyID: 01 00 00 00 \nsubject=/C=cn/O=CFCA OCA1/OU=Local RA OCA1/OU=Enterprises/[email protected]@802310048993438:[email protected]\nissuer=/C=CN/O=CFCA OCA1\n-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----\nBag Attributes: <Empty Attributes>\nsubject=/C=CN/O=CFCA CS CA\nissuer=/C=CN/O=CFCA CS CA\n-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----\nBag Attributes: <Empty Attributes>\nsubject=/C=CN/O=CFCA OCA1\nissuer=/C=CN/O=CFCA CS CA\n-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----\""
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "upacp_pc",
"banned": false,
"banned_msg": null,
"description": "description for channel upacp_pc",
"params": {
"upacp_mer_id": "808880088888838",
"fee_rate": 0,
"refund_return_fee": true,
"upacp_client_cert": "your client cert",
"upacp_client_key": "666666"
}
}'
{ "object": "channel", "channel": "upacp_pc", "banned": false, "banned_msg": null, "created": 1494934478, "description": "description for channel upacp_pc", "params": { "upacp_mer_id": "808880088888838", "fee_rate": 0, "refund_return_fee": true, "upacp_client_cert": "your client cert"", "upacp_client_key": "666666" } }
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1475029155" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "upacp_wap",
"banned": false,
"banned_msg": null,
"description": "description for channel upacp_wap",
"params": {
"upacp_mer_id": "808880088888838",
"fee_rate": 0,
"refund_return_fee": true,
"upacp_client_cert": "your client cert",
"upacp_client_key": "666666"
}
}'
{ "object": "channel", "channel": "upacp_wap", "banned": false, "banned_msg": null, "created": 1494934478, "description": "description for channel upacp_wap", "params": { "upacp_mer_id": "808880088888838", "fee_rate": 0, "refund_return_fee": true, "upacp_client_cert": "your client cert"", "upacp_client_key": "666666" } }
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496921461" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "cp_b2b",
"banned": false,
"banned_msg": null,
"description": "description for channel cp_b2b",
"params": {
"fee_rate": 1000,
"mer_id": "481611512088888",
"sign_file": "01101011111011110****",
"sign_pass": "31466666xxx",
"verify_file": "-----BEGIN CERTIFICATE-----
\n<內容省略>\n
-----END CERTIFICATE-----",
"tran_type": "0002"
}
}'
{ "object": "channel", "channel": "cp_b2b", "banned": false, "banned_msg": null, "created": 1496921461, "description": "description for channel cp_b2b", "params": { "fee_rate": 1000, "refund_return_fee": true, "mer_id": "481611512088888", "sign_file": "01101011111011110****", "sign_pass": "31466666xxx", "verify_file": "-----BEGIN CERTIFICATE----- \n<內容省略>\n -----END CERTIFICATE-----", "tran_type": "0002" } }
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496921461" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "upacp_b2b",
"params": {
"upacp_b2b_mer_id": "777290058110048",
"upacp_b2b_client_cert": "-----BEGIN CERTIFICATE-----
\n<內容省略>\n
-----END CERTIFICATE-----"
}
}'
{ "object": "channel", "channel": "upacp_b2b", "created": 1496921461, "description": null, "params": { "fee_type": 2, "fee_rate": 0, "refund_return_fee": false, "upacp_b2b_mer_id": "777290058000000", "upacp_b2b_client_cert": "-----BEGIN CERTIFICATE----- \n<內容省略>\n -----END CERTIFICATE-----" } }
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496926855" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "yeepay_wap",
"banned": false,
"banned_msg": null,
"description": "description for channel yeepay_wap",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"yeepay_mer_id": "10000666666",
"yeepay_public_key": "your public key"
}
}'
{
"object": "channel",
"channel": "yeepay_wap",
"banned": false,
"banned_msg": null,
"created": 1496926855,
"description": "description for channel yeepay_wap",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"yeepay_mer_id": "10000666666",
"yeepay_public_key": "your public key"
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496927062" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "jdpay_wap",
"banned": false,
"banned_msg": null,
"description": "description for channel jdpay_wap",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"jdpay_mer_id": "110078720001",
"jdpay_des_key": "wfHHDkY0B9xKDumMJQH35bNrxOVKAZfv",
"jdpay_md5_key": "wSxKguEzHQjwmRDkEDwmxk1mcpjIUljU",
"jdpay_public_key": "-----BEGIN PUBLIC KEY-----your public key-----\n",
"jdpay_mer_private_key": "-----BEGIN RSA PRIVATE KEY-----your private key-----END RSA PRIVATE KEY-----\n",
"jdpay_version": "2.0"
}
}'
{
"object": "channel",
"channel": "jdpay_wap",
"banned": false,
"banned_msg": null,
"created": 1496927062,
"description": "description for channel jdpay_wap",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"jdpay_mer_id": "110078720001",
"jdpay_des_key": "wfHHDkY0B9xKDumMJQH35bNrxOVKAZfv",
"jdpay_md5_key": "wSxKguEzHQjwmRDkEDwmxk1mcpjIUljU",
"jdpay_public_key": "-----BEGIN PUBLIC KEY-----your public key-----END PUBLIC KEY-----",
"jdpay_mer_private_key": "-----BEGIN RSA PRIVATE KEY-----your private key-----END RSA PRIVATE KEY-----",
"jdpay_version": "2.0"
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496928076" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "cmb_wallet",
"banned": false,
"banned_msg": null,
"description": "description for channel cmb_wallet",
"params": {
"fee_rate": 0,
"cmb_bank_no": "00000002",
"cmb_br_id": "0066",
"cmb_co_id": "006606",
"cmb_co_password": "666666",
"cmb_secret_key": "d4ur4h8Ap4JXGAnZ",
"cmb_private_key": "your private key-----END RSA PRIVATE KEY-----\n",
"cmb_version": 1
}
}'
{
"object": "channel",
"channel": "cmb_wallet",
"banned": false,
"banned_msg": null,
"created": 1496928076,
"description": "description for channel cmb_wallet",
"params": {
"fee_rate": 0,
"refund_return_fee": true,
"cmb_bank_no": "00000002",
"cmb_br_id": "0066",
"cmb_co_id": "006606",
"cmb_co_password": "666666",
"cmb_secret_key": "d4ur4h8Ap4JXGAnZ",
"cmb_private_key": "-----BEGIN RSA PRIVATE KEY-----your private key-----END RSA PRIVATE KEY-----",
"cmb_version": 1
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496929010" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "applepay_upacp",
"banned": false,
"banned_msg": null,
"description": "description for channel applepay_upacp",
"params": {
"fee_rate": 0,
"upacp_mer_id": "898660666666666",
"upacp_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END PRIVATE KEY-----",
"upacp_client_key": "000000",
"upacp_merchant_id": "merchant.com.xyz",
"mode": 1
}
}'
{
"object": "channel",
"channel": "applepay_upacp",
"banned": false,
"banned_msg": null,
"created": 1496929010,
"description": "description for channel applepay_upacp",
"params": {
"fee_rate": 0,
"refund_return_fee": true,
"upacp_mer_id": "898660666666666",
"upacp_client_cert": "-----BEGIN CERTIFICATE-----your cert-----END PRIVATE KEY-----",
"upacp_client_key": "000000",
"upacp_merchant_id": "merchant.com.xyz",
"mode": 1
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496929010" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "qpay",
"banned": false,
"banned_msg": null,
"description": "description for channel qpay",
"params": {
"fee_rate": 100,
"refund_return_fee": true,
"qpay_partner_id": "1900066666",
"qpay_partner_key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"qpay_operator_id": "1900066688",
"qpay_operator_pass": "1900068866",
"qpay_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----\n-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----",
"qpay_client_cert_pass": "1399484801",
"qpay_ios_appid": "1106688666",
"qpay_ios_appkey": "9e1e06ec8e0A1B2c3",
"qpay_android_appid": "1106688666",
"qpay_android_appkey": "9e1e06ec8e0A1B2c3"
}
}
{
"object": "channel",
"channel": "qpay",
"banned": false,
"banned_msg": null,
"created": 1496929529,
"description": "description for channel qpay",
"params": {
"fee_rate": 100,
"refund_return_fee": true,
"qpay_partner_id": "1900066666",
"qpay_partner_key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"qpay_operator_id": "1900066688",
"qpay_operator_pass": "1900068866",
"qpay_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----\n-----BEGIN PRIVATE KEY----- your private key-----END PRIVATE KEY-----",
"qpay_client_cert_pass": "1399484801",
"qpay_ios_appid": "1106688666",
"qpay_ios_appkey": "9e1e06ec8e0A1B2c3",
"qpay_android_appid": "1106688666",
"qpay_android_appkey": "9e1e06ec8e0A1B2c3"
}
}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496929010" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "qpay_pub",
"params": {
"fee_rate": 60,
"qpay_pub_partner_id": "1326836123",
"qpay_pub_partner_key": "c1236b0536ec19d3vfc39504fe1410f4",
"qpay_pub_operator_id": "1312334567027",
"qpay_pub_operator_pass": "operatorpassword",
"qpay_pub_client_cert": "-----BEGIN CERTIFICATE-----
\n<內容省略>\n
-----END PRIVATE KEY-----"
}
}'
{ "object": "channel", "channel": "qpay_pub", "banned": false, "banned_msg": null, "created": 1503573380, "description": null, "params": { "fee_rate": 60, "refund_return_fee": true, "qpay_pub_appid": null, "qpay_pub_partner_id": "1326836745", "qpay_pub_partner_key": "c7226b0536ec19d3vfc39504fe1410f4", "qpay_pub_operator_id": "1352234567027", "qpay_pub_operator_pass": "operatorpassword", "qpay_pub_client_cert": "-----BEGIN CERTIFICATE----- \n<內容省略>\n -----END PRIVATE KEY-----", "qpay_pub_client_cert_pass": null } }
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496921004" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "bfb_wap",
"banned": false,
"banned_msg": null,
"description": "description for channel bfb_wap",
"params": {
"fee_rate": 60,
"refund_return_fee": true,
"bfb_sp": "1500300666",
"bfb_key": "HKaX9Ozz5SGKeLuHiLCm50K8bz5KTuLm"
}
}'
{
"object": "channel",
"channel": "bfb_wap",
"banned": false,
"banned_msg": null,
"created": 1496921004,
"description": "description for channel bfb_wap",
"params": {
"bfb_sp": "1500300666",
"fee_rate": 60,
"refund_return_fee": true,
"bfb_key": "HKaX9Ozz5SGKeLuHiLCm50K8bz5KTuLm"
}
}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496930949" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "isv_qr_cil",
"banned": false,
"banned_msg": null,
"description": "description for channel isv_qr_cil",
"params": {
"fee_rate": 16,
"refund_return_fee": true,
"mer_id": "288880088880008",
"inst_id": "98888888",
"key": "eae4c4426b73e26e48dacf0fd6e9a9e1",
"support_refund": true
}
}'
{
"object": "channel",
"channel": "isv_qr_cil",
"banned": false,
"banned_msg": null,
"created": 1496930949,
"description": "description for channel isv_qr_cil",
"params": {
"fee_rate": 16,
"refund_return_fee": true,
"mer_id": "288880088880008",
"inst_id": "98888888",
"key": "eae4c4426b73e26e48dacf0fd6e9a9e1",
"support_refund": true
}
}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496931036" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "isv_scan_cil",
"banned": false,
"banned_msg": null,
"description": "description for channel qpay",
"params": {
"fee_rate": 16,
"mer_id": "288880088880008",
"inst_id": "98888888",
"key": "eae4c4426b73e26e48dacf0fd6e9a9e1",
"support_refund": true
}
}'
{
"object": "channel",
"channel": "isv_scan_cil",
"banned": false,
"banned_msg": null,
"created": 1496931036,
"description": "description for channel qpay",
"params": {
"fee_rate": 16,
"refund_return_fee": true,
"mer_id": "288880088880008",
"inst_id": "98888888",
"key": "eae4c4426b73e26e48dacf0fd6e9a9e1",
"support_refund": true
}
}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_GaDuf99evvfTi5Wb/channels \
-H "Pingplusplus-Request-Timestamp: 1496934031" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "isv_wap_cil",
"banned": false,
"banned_msg": null,
"description": "description for channel isv_wap_cil",
"params": {
"fee_rate": 16,
"mer_id": "288880088880008",
"inst_id": "98888888",
"key": "eae4c4426b73e26e48dacf0fd6e9a9e1",
"support_refund": true
}
}'
{
"object": "channel",
"channel": "isv_wap_cil",
"banned": false,
"banned_msg": null,
"created": 1496934031,
"description": "description for channel isv_wap_cil",
"params": {
"fee_rate": 16,
"refund_return_fee": true,
"mer_id": "288880088880008",
"inst_id": "98888888",
"key": "eae4c4426b73e26e48dacf0fd6e9a9e1",
"support_refund": true
}
}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_GaDuf99evvfTi5Wb/transfer_channels \
-H "Pingplusplus-Request-Timestamp: 1501207993" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "alipay",
"params": {
"fee_rate": 3,
"alipay_app_id": "2016666666666666",
"alipay_pid": "2088111111111111",
"alipay_account": "[email protected]",
"alipay_account_name": "Your Account Name",
"alipay_sign_type": "rsa",
"alipay_security_key": "a5srakrbci3nf1pracb52xcs9xlhu8gu",
"alipay_private_key": "-----BEGIN PRIVATE KEY-----
\n<內容省略>\n
-----END PRIVATE KEY-----",
"alipay_public_key": "-----BEGIN PUBLIC KEY-----
\n<內容省略>\n
-----END PUBLIC KEY-----",
"alipay_private_key_rsa2": "-----BEGIN PRIVATE KEY-----
\n<內容省略>\n
-----END PRIVATE KEY-----",
"alipay_public_key_rsa2": "-----BEGIN PUBLIC KEY-----
\n<內容省略>\n
-----END PUBLIC KEY-----",
"alipay_version": 2
},
"banned": false,
"banned_msg": null,
"description": "description for channel alipay"
}'
{ "object": "channel", "channel": "alipay", "banned": false, "banned_msg": null, "created": 1501207993, "description": "description for channel alipay", "params": { "fee_rate": 3, "alipay_app_id": "2016666666666666", "alipay_pid": "2088111111111111", "alipay_account": "[email protected]", "alipay_account_name": "Your Account Name", "alipay_sign_type": "rsa", "alipay_security_key": "a5srakrbci3nf1pracb52xcs9xlhu8gu", "alipay_private_key": "-----BEGIN PRIVATE KEY----- \n<內容省略>\n -----END PRIVATE KEY-----", "alipay_public_key": "-----BEGIN PUBLIC KEY----- \n<內容省略>\n -----END PUBLIC KEY-----", "alipay_private_key_rsa2": "-----BEGIN PRIVATE KEY----- \n<內容省略>\n -----END PRIVATE KEY-----", "alipay_public_key_rsa2": "-----BEGIN PUBLIC KEY----- \n<內容省略>\n -----END PUBLIC KEY-----", "alipay_version": 2 } }
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_GaDuf99evvfTi5Wb/transfer_channels \
-H "Pingplusplus-Request-Timestamp: 1500990342" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "unionpay",
"params": {
"fee_type": 2,
"fee_rate": 2,
"mer_id": "898660666666666",
"priv_key": "[NetPayClient]\nMERID=898660666666123\nprikeyS=\nprikeyE=36****",
"pub_key": "[NetPayClient]\nPGID=999999999999123\npubkeyS=39****"
},
"banned": false,
"banned_msg": null,
"description": "description for channel unionpay"
}'
{
"object": "channel",
"channel": "unionpay",
"banned": false,
"banned_msg": null,
"created": 1500990342,
"description": "description for channel unionpay",
"params": {
"fee_type": 2,
"fee_rate": 2,
"mer_id": "898660666666666",
"priv_key": "[NetPayClient]\nMERID=898660666666123\nprikeyS=\nprikeyE=36****",
"pub_key": "[NetPayClient]\nPGID=999999999999123\npubkeyS=393****"
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/transfer_channels \
-H "Pingplusplus-Request-Timestamp: 1496923177" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "wx_pub",
"banned": false,
"banned_msg": null,
"description": "description for channel wx_pub",
"params": {
"fee_rate": 60,
"wx_pub_app_id": "wxqjztoo4kaxjabcmj",
"wx_pub_mch_id": "10066666",
"wx_pub_key": "65F1DD9AA103883118E7A5B076453BCC",
"wx_pub_app_secret": "1cbdd4af01854247c8202f970ecc81fa",
"wx_pub_operator_id": "[email protected]",
"wx_pub_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_pub_client_key": "-----BEGIN PRIVATE KEY-----your private key-----END PRIVATE KEY-----"
}
}'
{
"object": "channel",
"channel": "wx_pub",
"banned": false,
"banned_msg": null,
"created": 1496923177,
"description": "description for channel wx_pub",
"params": {
"fee_rate": 60,
"wx_pub_app_id": "wxqjztoo4kaxjabcmj",
"wx_pub_mch_id": "10066666",
"wx_pub_key": "65F1DD9AA103883118E7A5B076453BCC",
"wx_pub_app_secret": "1cbdd4af01854247c8202f970ecc81fa",
"wx_pub_operator_id": "[email protected]",
"wx_pub_client_cert": "-----BEGIN CERTIFICATE-----your cert -----END CERTIFICATE-----",
"wx_pub_client_key": "-----BEGIN PRIVATE KEY-----your private key-----END PRIVATE KEY-----"
}
}
curl https://api.pingxx.com/v1/apps/app_LibTW1n1SOq9Pin1/sub_apps/app_GaDuf99evvfTi5Wb/transfer_channels \
-H "Pingplusplus-Request-Timestamp: 1496923177" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '{
"channel": "wx_lite",
"params": {
"fee_rate": 60,
"wx_lite_app_id": "wxf1b140611016a216",
"wx_lite_mch_id": "1328932817",
"wx_lite_key": "lGKgtjClGY83o9bDBaiim5A8uxn6ZwO7",
"wx_lite_app_secret": "afb0a23ad473e4fc3c5545ec3cd96345",
"wx_lite_operator_id": "[email protected]",
"wx_lite_client_cert": "-----BEGIN CERTIFICATE-----\n<內容省略>\n-----END CERTIFICATE-----",
"wx_lite_client_key": "-----BEGIN PRIVATE KEY-----\n<內容省略>\n-----END PRIVATE KEY-----"
},
"banned": false,
"banned_msg": null,
"description": ""
}'
{
"object": "channel",
"channel": "wx_pub",
"banned": false,
"banned_msg": null,
"created": 1496923177,
"description": "",
"params": {
"fee_rate": 60,
"wx_lite_app_id": "wxf1b140611016a216",
"wx_lite_mch_id": "1328932817",
"wx_lite_key": "lGKgtjClGY83o9bDBaiim5A8uxn6ZwO7",
"wx_lite_app_secret": "afb0a23ad473e4fc3c5545ec3cd96345",
"wx_lite_operator_id": "[email protected]",
"wx_lite_client_cert": "-----BEGIN CERTIFICATE-----\n<內容省略>\n-----END CERTIFICATE-----",
"wx_lite_client_key": "-----BEGIN PRIVATE KEY-----\n<內容省略>\n-----END PRIVATE KEY-----"
}
}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_GaDuf99evvfTi5Wb/transfer_channels \
-H "Pingplusplus-Request-Timestamp: 1501409444" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '
{
"channel": "jdpay_transfer",
"params": {
"fee_type": 2,
"fee_rate": 100,
"jdpay_mer_id": "366666662767266616",
"jdpay_public_key": "-----BEGIN CERTIFICATE-----\nMII****\n-----END CERTIFICATE-----",
"jdpay_mer_sign_key": "366666662767266616abc",
"jdpay_mer_public_key": "-----BEGIN CERTIFICATE-----\nMII****n-----END PRIVATE KEY-----",
"jdpay_mer_private_key": "-----BEGIN CERTIFICATE-----\nMII****n-----END PRIVATE KEY-----"
},
"banned": false,
"banned_msg": null,
"description": "description for channel jdpay"
}
'
{
"object": "channel",
"channel": "jdpay_transfer",
"banned": false,
"banned_msg": null,
"created": 1501409444,
"description": "description for channel jdpay",
"params": {
"fee_type": 2,
"fee_rate": 100,
"jdpay_mer_id": "366666662767266616",
"jdpay_public_key": "-----BEGIN CERTIFICATE-----\nMII****\n-----END CERTIFICATE-----",
"jdpay_mer_sign_key": "366666662767266616abc",
"jdpay_mer_public_key": "-----BEGIN CERTIFICATE-----\nMII****\n-----END CERTIFICATE-----",
"jdpay_mer_private_key": "-----BEGIN PRIVATE KEY-----\nMIIC****\n-----END PRIVATE KEY-----"
}
curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/sub_apps/app_GaDuf99evvfTi5Wb/transfer_channels \
-H "Pingplusplus-Request-Timestamp: 1501410563" \
-H "Pingplusplus-Signature: SIGNATURE" \
-u sk_live_ibbTe5jLGCi5rzfH4OqP****: \
-d '
{
"channel": "allinpay",
"params": {
"fee_type": 2,
"fee_rate": 100,
"allinpay_mer_id": "266566666666662",
"allinpay_mer_username": "26656666666666264",
"allinpay_mer_password": "111111",
"allinpay_public_key": "-----BEGIN CERTIFICATE-----\nMII****\n-----END CERTIFICATE-----",
"allinpay_mer_private_key": "Bag Attributes\n localKeyID: 48 10 B9 F7 BE C5 6D 6C C2 8B AE 51 9E 6C AC AD E5 95 D6 97 \n friendlyName: 266566666666662\nKey Attributes: <No Attributes>\n-----BEGIN PRIVATE KEY-----\nMII****\n-----END PRIVATE KEY-----"
},
"banned": false,
"banned_msg": null,
"description": "description for channel allinpay"
}
'
{
"object": "channel",
"channel": "allinpay",
"banned": false,
"banned_msg": null,
"created": 1501410563,
"description": "description for channel allinpay",
"params": {
"fee_type": 2,
"fee_rate": 100,
"allinpay_mer_id": "266566666666662",
"allinpay_mer_username": "26656666666666264",
"allinpay_mer_password": "111111",
"allinpay_public_key": "-----BEGIN CERTIFICATE-----\nMII****\n-----END CERTIFICATE-----",
"allinpay_mer_private_key": "Bag Attributes\n localKeyID: 48 10 B9 F7 BE C5 6D 6C C2 8B AE 51 9E 6C AC AD E5 95 D6 97 \n friendlyName: 266566666666662\nKey Attributes: <No Attributes>\n-----BEGIN PRIVATE KEY-----\nMII****\n-----END PRIVATE KEY-----"
}
}
open_bank_code | 銀行名稱 |
---|---|
0100 | 中國郵政儲蓄銀行 |
0102 | 工商銀行 |
0103 | 農業銀行 |
0104 | 中國銀行 |
0105 | 建設銀行 |
0301 | 交通銀行 |
0302 | 中信銀行 |
0303 | 光大銀行 |
0304 | 華夏銀行 |
0305 | 民生銀行 |
0306 | 廣發銀行 |
0308 | 招商銀行 |
0309 | 興業銀行 |
0310 | 浦發銀行 |
0318 | 平安銀行 |
0403 | 北京銀行 |
0408 | 寧波銀行 |
open_bank_code | open_bank |
---|---|
0100 | 中國郵政儲蓄銀行 |
0102 | 工商銀行 |
0103 | 農業銀行 |
0104 | 中國銀行 |
0105 | 建設銀行 |
0301 | 交通銀行 |
0302 | 中信銀行 |
0303 | 光大銀行 |
0304 | 華夏銀行 |
0305 | 民生銀行 |
0306 | 廣發銀行 |
0307 | 深圳發展銀行 |
0308 | 招商銀行 |
0309 | 興業銀行 |
0310 | 浦發銀行 |
0311 | 恒豐銀行 |
0313 | 臨沂市商業銀行 |
0316 | 浙商銀行 |
0317 | 渤海銀行 |
0318 | 平安銀行 |
0328 | 新韓銀行(中國) |
0329 | 韓亞銀行(中國) |
0336 | 企業銀行 |
0401 | 上海銀行 |
0402 | 廈門銀行 |
0403 | 北京銀行 |
0404 | 煙臺市商業銀行 |
0405 | 福建海峽銀行 |
0406 | 吉林銀行 |
0408 | 寧波銀行 |
0412 | 溫州銀行 |
0413 | 廣州銀行 |
0414 | 漢口銀行 |
0418 | 洛陽銀行 |
0420 | 大連銀行 |
0422 | 河北銀行 |
0423 | 杭州商業銀行 |
0424 | 南京銀行 |
0427 | 烏魯木齊市商業銀行 |
0428 | 紹興銀行 |
0433 | 葫蘆島市商業銀行 |
0434 | 天津銀行 |
0435 | 鄭州銀行 |
0436 | 寧夏銀行 |
0438 | 齊商銀行 |
0439 | 錦州銀行 |
0440 | 徽商銀行 |
0441 | 重慶銀行 |
0442 | 哈爾濱銀行 |
0443 | 貴陽銀行 |
0447 | 蘭州銀行 |
0448 | 南昌銀行 |
0449 | 晉商銀行 |
0450 | 青島銀行 |
0455 | 日照市商業銀行 |
0456 | 鞍山銀行 |
0458 | 青海銀行 |
0459 | 臺州銀行 |
0461 | 長沙銀行 |
0463 | 贛州銀行 |
0465 | 營口銀行 |
0467 | 阜新銀行 |
0474 | 內蒙古銀行 |
0475 | 湖州市商業銀行 |
0476 | 滄州銀行 |
0479 | 包商銀行 |
0481 | 威海商業銀行 |
0483 | 攀枝花市商業銀行 |
0485 | 綿陽市商業銀行 |
0490 | 張家口市商業銀行 |
0492 | 龍江銀行 |
0495 | 柳州銀行 |
0497 | 萊商銀行 |
0498 | 德陽銀行 |
0503 | 晉城銀行 |
0505 | 東莞商行 |
0508 | 江蘇銀行 |
0513 | 承德市商業銀行 |
0515 | 德州銀行 |
0517 | 邯鄲市商業銀行 |
0525 | 浙江民泰商業銀行 |
0526 | 上饒市商業銀行 |
0527 | 東營銀行 |
0528 | 泰安市商業銀行 |
0530 | 浙江稠州商業銀行 |
0534 | 鄂爾多斯銀行 |
0537 | 濟寧銀行 |
0547 | 昆侖銀行 |
0554 | 邢臺銀行 |
0556 | 漯河商行 |
1401 | 上海農商銀行 |
1402 | 昆山農信社 |
1403 | 常熟市農村商業銀行 |
1404 | 深圳農村商業銀行 |
1405 | 廣州農村商業銀行 |
1408 | 佛山順德農村商業銀行 |
1409 | 昆明農村信用社聯合社 |
1410 | 湖北農信社 |
1415 | 東莞農村商業銀行 |
1416 | 張家港農村商業銀行 |
1417 | 福建省農村信用社聯合社 |
1418 | 北京農村商業銀行 |
1419 | 天津農村商業銀行 |
1420 | 寧波鄞州農村合作銀行 |
1424 | 江蘇省農村信用社聯合社 |
1428 | 江蘇吳江農村商業銀行 |
1430 | 蘇州銀行 |
1443 | 廣西農村信用社聯合社 |
1446 | 黃河農村商業銀行 |
1447 | 安徽省農村信用社聯合社 |
1448 | 海南省農村信用社聯合社 |
1513 | 重慶農村商業銀行 |
6462 | 濰坊市商業銀行 |
6466 | 富滇銀行 |
6473 | 浙江泰隆商業銀行 |
6478 | 廣西北部灣銀行 |
6567 | 商丘商行 |
open_bank_code | open_bank |
---|---|
0100 | 中國郵政儲蓄銀行 |
0102 | 工商銀行 |
0103 | 農業銀行 |
0104 | 中國銀行 |
0105 | 建設銀行 |
0301 | 交通銀行 |
0302 | 中信銀行 |
0303 | 光大銀行 |
0304 | 華夏銀行 |
0305 | 民生銀行 |
0306 | 廣發銀行 |
0308 | 招商銀行 |
0309 | 興業銀行 |
0310 | 浦發銀行 |
0311 | 恒豐銀行 |
0313 | 臨沂市商業銀行 |
0316 | 浙商銀行 |
0317 | 渤海銀行 |
0318 | 平安銀行 |
0328 | 新韓銀行(中國) |
0329 | 韓亞銀行(中國) |
0336 | 企業銀行 |
0401 | 上海銀行 |
0402 | 廈門銀行 |
0403 | 北京銀行 |
0404 | 煙臺市商業銀行 |
0405 | 福建海峽銀行 |
0406 | 吉林銀行 |
0408 | 寧波銀行 |
0412 | 溫州銀行 |
0413 | 廣州銀行 |
0414 | 漢口銀行 |
0418 | 洛陽銀行 |
0420 | 大連銀行 |
0422 | 河北銀行 |
0423 | 杭州商業銀行 |
0424 | 南京銀行 |
0427 | 烏魯木齊市商業銀行 |
0428 | 紹興銀行 |
0433 | 葫蘆島市商業銀行 |
0434 | 天津銀行 |
0435 | 鄭州銀行 |
0436 | 寧夏銀行 |
0438 | 齊商銀行 |
0439 | 錦州銀行 |
0440 | 徽商銀行 |
0441 | 重慶銀行 |
0442 | 哈爾濱銀行 |
0443 | 貴陽銀行 |
0447 | 蘭州銀行 |
0448 | 南昌銀行 |
0449 | 晉商銀行 |
0450 | 青島銀行 |
0455 | 日照市商業銀行 |
0456 | 鞍山銀行 |
0458 | 青海銀行 |
0459 | 臺州銀行 |
0461 | 長沙銀行 |
0463 | 贛州銀行 |
0465 | 營口銀行 |
0467 | 阜新銀行 |
0474 | 內蒙古銀行 |
0475 | 湖州市商業銀行 |
0479 | 包商銀行 |
0481 | 威海商業銀行 |
0483 | 攀枝花市商業銀行 |
0485 | 綿陽市商業銀行 |
0490 | 張家口市商業銀行 |
0492 | 龍江銀行 |
0497 | 萊商銀行 |
0505 | 東莞商行 |
0547 | 昆侖銀行 |
1401 | 上海農商銀行 |
1402 | 昆山農信社 |
1403 | 常熟市農村商業銀行 |
1404 | 深圳農村商業銀行 |
1405 | 廣州農村商業銀行 |
1408 | 佛山順德農村商業銀行 |
1409 | 昆明農村信用社聯合社 |
1410 | 湖北農信社 |
1415 | 東莞農村商業銀行 |
1416 | 張家港農村商業銀行 |
1418 | 北京農村商業銀行 |
1419 | 天津農村商業銀行 |
1420 | 寧波鄞州農村合作銀行 |
1424 | 江蘇省農村信用社聯合社 |
1447 | 安徽省農村信用社聯合社 |
1513 | 重慶農村商業銀行 |
6462 | 濰坊市商業銀行 |
6473 | 浙江泰隆商業銀行 |
open_bank_code | open_bank |
---|---|
0100 | 中國郵政儲蓄銀行 |
0102 | 工商銀行 |
0103 | 農業銀行 |
0104 | 中國銀行 |
0105 | 建設銀行 |
0301 | 交通銀行 |
0302 | 中信銀行 |
0303 | 光大銀行 |
0304 | 華夏銀行 |
0305 | 民生銀行 |
0306 | 廣發銀行 |
0308 | 招商銀行 |
0309 | 興業銀行 |
0310 | 浦發銀行 |
0311 | 恒豐銀行 |
0317 | 渤海銀行 |
0318 | 平安銀行 |
0328 | 新韓銀行(中國) |
0329 | 韓亞銀行(中國) |
0401 | 上海銀行 |
0402 | 廈門銀行 |
0403 | 北京銀行 |
0406 | 吉林銀行 |
0408 | 寧波銀行 |
0412 | 溫州銀行 |
0413 | 廣州銀行 |
0414 | 漢口銀行 |
0418 | 洛陽銀行 |
0420 | 大連銀行 |
0424 | 南京銀行 |
0435 | 鄭州銀行 |
0436 | 寧夏銀行 |
0438 | 齊商銀行 |
0439 | 錦州銀行 |
0440 | 徽商銀行 |
0441 | 重慶銀行 |
0442 | 哈爾濱銀行 |
0443 | 貴陽銀行 |
0447 | 蘭州銀行 |
0450 | 青島銀行 |
0465 | 營口銀行 |
0467 | 阜新銀行 |
0476 | 滄州銀行 |
0479 | 包商銀行 |
0483 | 攀枝花市商業銀行 |
0492 | 龍江銀行 |
0508 | 江蘇銀行 |
0515 | 德州銀行 |
0527 | 東營銀行 |
0528 | 泰安市商業銀行 |
0534 | 鄂爾多斯銀行 |
0537 | 濟寧銀行 |
0554 | 邢臺銀行 |
1401 | 上海農商銀行 |
1404 | 深圳農村商業銀行 |
1405 | 廣州農村商業銀行 |
1415 | 東莞農村商業銀行 |
1446 | 黃河農村商業銀行 |
1513 | 重慶農村商業銀行 |
業務代碼 | 類型 |
---|---|
00601 | 保險分紅 |
00308 | 保險給付金 |
00600 | 保險理賠 |
06000 | 保證金 |
00603 | 大病賠款 |
05101 | 代發工資 |
05102 | 代發獎金 |
05105 | 代發勞務費 |
05103 | 代發養老金 |
05100 | 代發傭金 |
09900 | 代付其他 |
09100 | 匯款 |
09500 | 貸款 |
09001 | 基金分紅 |
09000 | 基金贖回 |
09999 | 內部調賬 |
09200 | 商戶退款 |
00602 | 退墊付保費 |
09501 | 退款 |
09300 | 信用卡還款 |
09400 | 虛擬賬戶取現 |
09998 | 業務代碼摘要測試代付 |
商品類別碼 | 描述 |
---|---|
1 | 虛擬產品 |
3 | 公共事業繳費 |
4 | 手機充值 |
6 | 公益事業 |
7 | 實物電商 |
8 | 彩票業務 |
10 | 行政教育 |
11 | 線下服務業 |
13 | 微信實物電商 |
14 | 微信虛擬電商 |
15 | 保險行業 |
16 | 基金行業 |
17 | 電子票務 |
18 | 金融投資 |
19 | 大額支付 |
20 | 其他 |
21 | 旅游機票 |
22 | 暢付 D |
代碼 | 備注 |
---|---|
0 | IMEI。國際移動設備身份碼的縮寫,國際移動裝備辨識碼,是由 15 位數字組成的"電子串號",它與每臺手機一一對應 |
1 | MAC(Media Access Control)地址,或稱為 MAC 位址、硬件位址,用來定義網絡設備的位置。在 OSI 模型中,第三層網絡層負責 IP 地址,第二層數據鏈路層則負責 MAC 位址。因此一個主機會有一個 IP 地址,而每個網絡位置會有一個專屬于它的 MAC 位址 |
2 | 用戶 ID(編號) |
3 | 用戶 Email |
4 | 用戶手機號 |
5 | 用戶身份證號 |
6 | 用戶紙質訂單協議號 |
返回碼 | 返回信息 |
---|---|
0 | 成功 |
1001 | 簽名驗證失敗 |
1002 | 參數格式不正確 |
2001 | 調用第三方接口失敗 |
2002 | 操作數據庫失敗 |
3200 | 無效的商戶號 |
3204 | 無效的 sessionId |
3300 | 商戶號未找到 |
3303 | 商戶號與服務訪問賬號不匹配 |
3420 | 請求參數不合法 |
3431 | 身份證信息不匹配 |
3432 | 身份證信息匹配失敗 |
3433 | 身份驗證活體照片非法 |
3434 | 身份驗證上傳登記照失敗 |
3435 | 身份驗證照片比對失敗 |
3441 | 銀行卡信息認證失敗 |
3442 | 銀行卡信息認證請求異常 |
3443 | 銀行卡信息認證請求超時 |
3451 | 銀行卡信息認證校驗失敗 |
3452 | 銀行卡信息認證校驗異常 |
微信海關編號說明
海關編號 | 海關名稱 |
---|---|
GUANGZHOU_ZS | 廣州海關(總署版) |
GUANGZHOU_HP_GJ | 廣州黃埔國檢 |
GUANGZHOU_NS_GJ | 廣州南沙國檢 |
HANGZHOU_ZS | 杭州海關(總署版) |
NINGBO | 寧波海關 |
ZHENGZHOU_BS | 鄭州(保稅物流中心) |
CHONGQING | 重慶海關 |
XIAN | 西安海關 |
SHANGHAI_ZS | 上海海關(總署版) |
SHENZHEN | 深圳海關 |
ZHENGZHOU_ZH_ZS | 鄭州綜保(總署版) |
TIANJIN | 天津海關 |
BEIJING | 北京海關 |
支付寶海關編號說明
海關編號 | 海關名稱 |
---|---|
HANGZHOU_ZONGSHU | 杭州海關 |
ZONGSHU | 海關總署(廣州海關、新鄭綜合保稅區(空港)、重慶海關、深圳海關、西安海關、天津海關、合肥海關、蘇州海關) |
ZHENGZHOU | 河南保稅物流中心 |
HENAN | 新鄭綜合保稅區(空港) |
NINGBO | 寧波海關 |
SHENZHEN_ZS | 深圳海關 |
SHANGHAI_CBT | 上海海關 |
NANSHAGJ | 南沙國檢 |
GUANGZHOU_HUANGPU | 廣州黃埔海關 |
銀聯海關編號說明
海關編號 | 海關名稱 |
---|---|
CUSTOMSHEADOFFICE | 海關總署 |
SHENZHEN | 深圳海關 |
GUANGZHOU | 廣州海關 |
NANSHAGUOJIAN | 南沙國檢 |
ZHEJIANG | 浙江口岸(杭州) |
SHANGHAI | 上海海關 |
ZHENGZHOUJK | 鄭州經開 |
ZHENGZHOUZH | 鄭州綜合 |
time_settle
屬性:『僅針對個人開發者』更新為『暫不生效』,詳情請參考API文檔。jdpay_wap
渠道中添加 extra
字段 pay_list
,詳情請參考API 文檔Pingpp.Key
改為 Pingpp.Pingpp.SetApiKey
,詳情請參考API文檔。curl
示例,添加請求內容中的 apikey
,添加對應 php
、go
、python
示例文檔 ,詳情請參考API文檔。php
、go
、java
示例文檔,詳情請參考API文檔。php
、go
示例文檔,詳情請參考API文檔。go
示例文檔,詳情請參考API文檔。java
示例文檔,詳情請參考API文檔。per_page
默認值為 10 ,詳情請參考API文檔。per_page
默認值為 10 ,詳情請參考API文檔。expand[]=app
。metadata
字段為可選,詳情請參考API文檔。extra
參數,添加返回參數 buyer_account
,詳情請參考