Receive a signed classic EPay query notification
Generated from the checked-in source. Do not edit this reference by hand.
GET /payments/epay/notify
Bounded to 8192 query bytes. Duplicate or unknown fields are rejected. Verifies the configured merchant and exact saved CNY order, method and amount before binding payment identity and funding exactly once. A browser return is never payment evidence. Post-input processing has a two-second deadline; timeout requires delivery retry. Merchant compatibility and live collection remain unqualified.
Operation: receiveEPayQueryNotification.
Authentication
Section titled “Authentication”No OpenAPI security scheme is required. Other request validation still applies.
[]HTTP request
Section titled “HTTP request”Set NIU_ORIGIN to your installation origin (without /v1). Replace path, query and header placeholders with the required values. Query examples use curl 7.87 or newer to encode values with --url-query. Use the credential scope described above; a bearer token must have the authority required by this operation.
curl --fail-with-body -X GET "$NIU_ORIGIN/payments/epay/notify" \ --url-query 'pid=<PID>' \ --url-query 'out_trade_no=<OUT_TRADE_NO>' \ --url-query 'trade_no=<TRADE_NO>' \ --url-query 'type=<TYPE>' \ --url-query 'money=<MONEY>' \ --url-query 'trade_status=<TRADE_STATUS>' \ --url-query 'sign=<SIGN>' \ --url-query 'sign_type=<SIGN_TYPE>'Parameters
Section titled “Parameters”Location: query. Required.
{ "type": "string", "pattern": "^[0-9]{1,32}$"}out_trade_no
Section titled “out_trade_no”Location: query. Required.
{ "type": "string", "pattern": "^[0-9a-f]{32}$"}trade_no
Section titled “trade_no”Location: query. Required.
{ "type": "string", "pattern": "^[A-Za-z0-9_-]{1,128}$"}Location: query. Required.
{ "type": "string"}Location: query. Required.
{ "type": "string", "description": "Exact decimal CNY matching the saved intent."}trade_status
Section titled “trade_status”Location: query. Required.
{ "type": "string", "const": "TRADE_SUCCESS"}Location: query. Required.
{ "type": "string", "pattern": "^[0-9a-f]{32}$"}sign_type
Section titled “sign_type”Location: query. Required.
{ "type": "string", "const": "MD5"}Location: query. Optional.
{ "type": "string", "maxLength": 1024}Request body
Section titled “Request body”No request body is declared.
Responses
Section titled “Responses”HTTP 200
Section titled “HTTP 200”Verified payment committed or replayed; exactly one saved-order credit
Response headers:
{ "Cache-Control": { "schema": { "type": "string", "const": "no-store" } }}Content type: text/plain.
{ "type": "string", "const": "success"}HTTP 400
Section titled “HTTP 400”Invalid notification, signature or saved-order evidence
HTTP 409
Section titled “HTTP 409”Payment identity conflicts with an existing binding or another order
HTTP 502
Section titled “HTTP 502”Integration unavailable or processing deadline exceeded; retry delivery
HTTP 503
Section titled “HTTP 503”Durable storage unavailable; retry notification
Behavior and supported scope
Section titled “Behavior and supported scope”Bounded to 8192 query bytes. Duplicate or unknown fields are rejected. Verifies the configured merchant and exact saved CNY order, method and amount before binding payment identity and funding exactly once. A browser return is never payment evidence. Post-input processing has a two-second deadline; timeout requires delivery retry. Merchant compatibility and live collection remain unqualified.
Supported scope: implemented