Revoke
After a certain amount of time after the order is paid, the client can issue a revoke request to ask for a full refund and avoid any service fee. The actual logic is the same as cancel, but it serves for a different purpose.
API Target
{api_domain}/upay/v2/revoke
Request Paramters
Parameter | Description | Data Type | Required | Note | Example |
---|---|---|---|---|---|
terminal_sn | Terminal serial number | String(32) | Y | Represents a unique identifier of a Upay terminal; returned in responses for requesting activation or check-in; number string no longer than 32 characters. | "00101010029201012912" |
sn | Upay order serial number | String(16) | N | Unique order serial number in Upay system | "7892259488292938" |
client_sn | Order serial number in client system | String(32) | N | Must be unique in client system; no longer than 32 characters. | "18348290098298292838" |
sn
or client_sn
must be presented in the request, otherwise the request is invalid; if both are presented, sn
will be used to identify the order.
Response Paramters
All following parameters refer to the fields in biz_response
Parameter | Description | Data Type | Required | Note | Example |
---|---|---|---|---|---|
result_code | Request result code | String | Y | Result code of business response | "CANCEL_SUCCESS" |
error_code | Error code of business response | String | N | See "Business Response Error Codes and Messages" | "UPAY_TCP_ORDER_NOT_REFUNDABLE" |
error_message | Error message of business response | String | N | See "Business Response Error Codes and Messages" | "订单7894259244061958参与了活动并且无法撤销" |
terminal_sn | Terminal serial number of the transaction | String(32) | Y | Used by Upay to identify a unique terminal | "01939202039923029" |
sn | Upay order serial number | String(16) | Y | Unique order serial number in Upay system | "7892259488292938" |
client_sn | Order serial number in client system | String(32) | Y | Used by client to identify its own order | "7654321132" |
trade_no | Order number in payment service provider system | String(64) | Y | Used by payment service provider to identify its own order | "2013112011001004330000121536" |
status | The latest transaction status | String(32) | Y | "SUCCESS" | |
order_status | The latest order status | String(32) | Y | "PAID" | |
payway | Payment service provider | String(32) | Y | Appendix-Payment Service Providers | "3" |
payway_name | Payment service provider name | String(128) | Y | "微信" | |
total_amount | Total amount of the order in cents | String(10) | Y | "10000" | |
net_amount | Net amount of the order (the actual amount seller receives) in cents | String(10) | Y | Equals to total amount if the order has not been refunded, otherwise equals to total amount - refund amount |
"0" |
subject | Subject or brief summary of the transaction | String(64) | Y | "Pizza" | |
finish_time | Transaction finish time in Upay system | String(13) | Y | Unix Timestamp in milliseconds | "1449646835244" |
channel_finish_time | Transaction finish time in payment service provider's system | String(13) | Y | Unix Timestamp in milliseconds | "1449646835244" |
operator | Operator of the transaction | String(32) | Y | "Peter" |
Response Example - Failed
{
"result_code": "200",
"biz_response": {
"result_code": "CANCEL_ERROR",
"error_code": "UPAY_TCP_ORDER_NOT_REFUNDABLE",
"error_message": "订单7894259244061958参与了活动并且无法撤销"
}
}
Questions & Answers
1. When to call revoke
after the order has been completed?
Only works in the day of payment.