Back to top

Product Introduction

Nowadays, more and more Chinese customers directly shop from the stores of overseas merchants via their mini-programs. Thus, merchants can integrate our payment solution into their mini-programs to improve user experience by providing them with the familiar and comfortable payment method, as well as to facilitate payment, foreign exchange and settlement for both merchants and customers. After integration, a payment button is added to the mini-program.

  • The customer clicks the payment button, and a payment page will be opened on his mobile phone.

  • Once payment is successful, the merchant can check the payment result/status to decide the next operation step.

  • Meanwhile, HipoPay will inform the merchant about the payment result via an asynchronous notification, which features a reliable built-in retry mechanism.

The SDK of HipoPay with a full set of mobile payment interfaces provides merchants with convenient, safe and reliable payment services.

Payment Process and User Experience

  1. The customer shops goods or services within a mini-program:

  2. The customer makes payment:

  3. Payment is successful:

Integration Process

  1. Process digital signature

  2. Integrate with Place Order

  3. Call payment in your mini-program

  4. Receive asynchronous notification

  5. Integrate with refund API

  6. Integrate with reconciliation API

Digital Signature

Unless otherwise stated, all APIs require the siginature for HipoPay to confirm the identity of the user.。


HipoPay SDK has processed signature and signature verification and thus integration can be accelerated.

Python SDK

PHP SDK

JAVA SDK

NodeJS SDK

If it is not convenient to usd the SDK, perform the following steps to process signature.

I. Generate the private key and the public key.

  • Private Key

Purpose: It performs paramter signing when the client requests the API.

Storage: Please keep it safe and properly. Do not reveal it to others.

Locally generated private key: openssl genrsa -out private.key 2048

  • Public Key

Purpose: It is used for signature verification by HipoPay.

Storage: Please send it to HipoPay.

Locally generated public key: openssl rsa -pubout -in private.key -out public.key

II. Generate to-be-signed string.

  1. Arrange the request parameters (query string of the GET request and form of the POST request) by parameter names based on the ASCII code in ascending lexicographical order, and use the URL key pair format (key1=value1&key2=value2…) to generate a signature string.

  2. Append Timestamp to the signature string and separate them with a , to generate a to-be-signed string.

III. Generate the signature.

  1. Encrypt the to-be-signed string by using RSA. Specify SHA256 as Hash algorithm, and use the private key in the key pair submitted when the service is requested.

  2. Code the encryption result by using base64 to generate the final signature result.

IIII. Add the request header.

When the merchant sends the request, add the following four paramters in the header.

Header Parameter Description Generation Method
MerchantNO Merchant No. Allocated by HipoPay
Version API version No. Fixed value 1.0
Timestamp Timestamp Timestamp as described in step II. 2
Signature API signature Result generated in step III. 4

When receiving HipoPay asynchronous notification, the merchant should verify the signature to confirm that the notification is sent by HipoPay and is intact. The signature verification method is as follows:

Signature verification method:

  1. Arrange the returned contents corrsponding to form of the POST request by parameter names based on the ASCII code in ascending lexicographical order, and use the URL key pair format (key1=value1&key2=value2…) to generate a signature string.

  2. Append the Timestamp value in the header of the POSTrequest to the signature string and separate them with a ,to get the query_string.

  3. Verify the query_string and the Signature value in the header of the POST request by using SHA-256. Contact HipoPay to obtain the public key.

Call Payment in Your Mini-Program

Perform the following three steps.

  1. Get user’s openid. Refer to mini-program login.

  2. Call the order placement API to obtain the prepayment parameter.

  3. Use the prepayment parameter to call payment. Refer to call payment in mini-program

API List


  • Mainland Wallet: Bank account with currency of CNY binded on Wechat/Alipay

  • HongKong Wallet: Bank account with currency of HKD binded on Wechat/Alipay


Place an Order

Place an Order
POST/wechatpay/mini_program/payment

Note:

This API can be called directly from the mini-program side. Signature is not required.

  • Request Parameter
Field Type Required Description Example Value
merchant_no string Y Merchant No. “WC8888888888888”
out_trade_id string Y Merchant transaction No. “201901021232211023”
amount string Y Amount of the payment order, to two decimal places at most. For JPY and KRW, the currency units are Japanese Yen and Korean Won respectively, without decimal places. “8.88”
currency string Y Currency of the payment order. For details, see currency code. “HKD”
product_info string Y Product information “Hipopay - product for test”
appid string Y WeChat appid
openid string Y User’s openid
client_ip string Y IP address of the client “10.129.35.61”
notify_url string N URL of the asynchronous notificaiton
is_rmb string N Whether to adopt CNY for pricing. Optional values are "TRUE" and "FALSE". “TRUE”
  • Response Data
Field Required Description
is_success Y Whether the service request is successful. Optional values are True and False.
response N Service response data. It is returned when is_success=True.
error N Service error code. It is returned when is_success=False. For details, see Error Code below.
error_message N Service error description. It is returned when is_success=False.

When is_success=True, response contains the following fields:

Field Required Description
amount Y Amount of the payment order
currency Y Currency of the payment order. For details, see currency code.
exchange_rate N Exchange rate adopted for settlement. It is returned when the payment order status is PAID.
finish_time N Time when payment is completed. It is returned when the payment order status is PAID.
out_trade_id Y Merchant transaction No.
payment_no Y Payment order No.
status Y Payment order status
product_info Y Product information
trade_time Y Time when transaction is created
trade_type Y Payment method
prepay_params Y Prepayment parameter
  • Error Code
Error Code Meaning
FOREX_MERCHANT_NOT_SUPPORT_THIS_CURRENCY This currency is not supported.
ILLEGAL_SECURITY_PROFILE This encryption method is not supported.
Response(JSON) success
HideShow
{
    "is_success": True,
    "response": {
        "amount": "0.10",
        "currency": "HKD", 
        "exchange_rate": "0.881890",
        "out_trade_id": "d2849e8140a6",
        "payment_no": "2018081316331654230251111",
        "status": "INIT",
        "product_info": "Wechat Mini Program Pay",
        "trade_time": "2018-08-13 16:33:16",
        "finish_time": "2018-08-13 16:33:16",
        "trade_type": "MINIPROGRA",
"prepay_params": {
          "nonceStr": "572666791269",
          "order_no": "2019021911592704114199308",
          "paySign": "466790B2486C24F2DE0BD4C77C7D22AB",
          "prepay_id": "wx19115928908673c06a1d48960711201017",
          "timeStamp": "1550548767"
        },
    }
}
Response(JSON) failed
HideShow
{
    "is_success": False,
    "error": "FOREX_MERCHANT_NOT_SUPPORT_THIS_CURRENCY",
    "error_message" : "This currency is not supported",
}

Check Payment Order

Check Payment Order
GET/payment

  • .Request Parameter:
Field Type Required Description Example Value
payment_no string N Payment order No. “2019062231224380479532988”
out_trade_id string N Merchant transaction No. “2746847384112837273872”

Note:

**You can check order information by payment_no or out_trade_id, which cannot be both null at the same time.

  • .Response Data:
Field Required Description
is_success Y Whether the service request is successful. Optional values are True and False.
response N Service response data. It is returned when is_success=True.
error N Service error code. It is returned when is_success=False. For details, see Error Code below.
error_message N Service error description. It is returned when is_success=False.

When is_success=True, response contains the following fields:

Field Required Description
amount Y Amount of the payment order
currency Y Currency of the payment order. For details, see currency code.
exchange_rate Y Exchange rate
out_trade_id Y Merchant transaction No.
payment_no Y Payment order No.
status Y Payment order status
product_info Y Product information
trade_time Y Time when transaction is created
trade_type Y Payment method
  • Error Code:
Error Code Meaning
PAYMENT_NOT_FOUND Order not found
ILLEGAL_SECURITY_PROFILE This encryption method is not supported.
Response(JSON) success
HideShow
{
    "is_success": True,
    "response": {
        "amount": "0.02",
        "currency": "HKD",
        "exchange_rate": "0.881890",
        "out_trade_id": "2746847384112837273872",
        "payment_no": "2018071823332342210483065",
        "status": "PAID",
        "product_info": "Alipay App Pay",
        "trade_time": "2018-07-18 23:33:23",
        "trade_type": "APP",
    }
}
Response(JSON) failed
HideShow
{
    "is_success": False,
    "error": "PAYMENT_NOT_FOUND",
    "error_message" : "Order not found",
}

Check Exchange Rate

Check Exchange Rate
GET/wechatpay/forex_rate

Note:

The reference exchange rate (target currency / CNY) is returned. The actual rate should be the live exchange rate when transaction occurs.

  • Request Parameter
Field Type Required Description Example Value
currency string Y Currency “USD”
  • Response Data
Field Required Description
is_success Y Whether the service request is successful. Optional values are True and False.
response N Service response data. It is returned when is_success=True.
error N Service error code. It is returned when is_success=False. For details, see Error Code below.
error_message N Service error description. It is returned when is_success=False.

When is_success=True, response contains the following fields:

Field Required Description
currency Y Currency. For details, see currency code.
forex_rate Y Exchange rate
  • Error Code
Error Code Meaning
CURRENCY_NOT_SUPPORT This currency is not supported.
ILLEGAL_SECURITY_PROFILE This encryption method is not supported.
Response(JSON) success
HideShow
{
  "is_success": true,
  "response": {
    "currency": "USD",
    "forex_rate": "0.1490046489450470854690666349"
  }
}
Response(JSON) failed
HideShow
{
    "is_success": False,
    "error": "CURRENCY_NOT_SUPPORT",
    "error_message" : "This currency is not supported",
}

Payment Notification

Payment Notification
POST/[notify_url]

After the customer pays successfully, HipoPay will send a POST request to the notify_url specified in the order information. If the successful response (‘success’) is not received, HipoPay will send the request for another 10 times at most at the interval of 1s / 2s / 4s / 8s / 60s / 60s / 60s / 600s / 600s / 1800s respectively until the successful response is received.

Note:

  • It is an asynchronous notification. A same notification might be sent to the merchant system for several times. The merchant system must be able to process repeated notification properly.

  • The best practices for dealing with such case: when a notification is received and processed, the enclosed payment data should be checked first to confirm whether the payment result has previously been processed or not. If so, return the processed result; if no, proceed with processing the result first before returning. Before checking the payment data, a transaction lock shall be used for concurrency to prevent data corruption caused by transaction race conditions.

  • Fields in the notification:
Field Required Description
status Y PAID: payment successful. Note: it is notified only when payment is successful.
trade_type Y Payment method
exchange_rate Y Exchange rate adopted for settlement
payment_no Y Payment order No.
currency Y Pricing currency of the payment order. For details, see currency code.
settle_currency Y Settlement currency of the payment order. For details, see currency code.
amount Y Amount of the payment order
trade_time Y Time when transaction is created
finish_time Y Time when payment is completed
pay_currency Y Payment currency. For details, see currency code.
pay_amount Y Payment amount
out_trade_id Y Merchant transaction No.

Note:

If add response_version = 3.0 while request payment notify will add params below

Field Description For example
pay_rate rate between payment currency and price currency
pay_rate_reversed 1 / pay_rate
bank_type 银行类型
promotion_detail activity_id activity ID 931386
name promotion name coupon-6
amount promotion amount 1
promotion_id coupon ID 109519
scope promotion scope GLOBAL; SINGLE
type promotion type COUPON;DISCOUNT

Public Key of SandBox ENV for callbackDownload

Public Key of Prod ENV for callbackDownload

Refund

Refund
POST/payment_refund

  • .Request Parameter
Field Type Required Description Example Value
payment_no string Y Payment order No. “201901021232211023”
out_refund_id string Y External refund order No. “R201901021232213”
refund_amount string N Refund amount. If this parameter is transferred, multiple refunds can be initiated, but the total refund amount cannot exceed the order amount. If this parameter is not transferred, the full order amount will be refunded. “8.88”
  • .Response Data
Field Required Description
is_success Y Whether the service request is successful. Optional values are True and False.
response N Service response data. It is returned when is_success=True.
error N Service error code. It is returned when is_success=False. For details, see Error Code below.
error_message N Service error description. It is returned when is_success=False.

When is_success=True, response contains the following fields:

Field Required Description
refund_no Y Refund order No.
status Y Refund order status
refund_amount Y Refund amount
payment_no Y Payment order No.
out_refund_id Y External refund order No.
finish_time N Refund completion time (refund successful)/Refund form creation time (refund unsuccessful)
  • Error Code
Error Code Meaning
REFUND_AMOUNT_INVALID Refund amount is invalid.
ILLEGAL_SECURITY_PROFILE This encryption method is not supported.
Response(JSON) success
HideShow
{
  "is_success": true,
  "response": {
    "fail_message": "Settled Balance Not Enough",
    "finish_time": "2021-12-23 16:42:34",
    "out_refund_id": "R201901021232213",
    "payment_no": "2637473637382",
    "refund_amount": "8.88",
    "refund_no": "2637473637452",
    "result_code": "0011",
    "status": "FAIL"
  },
  "return_message": "OK"
}
Response(JSON) failed
HideShow
{
    "is_success": False,
    "error": "REFUND_AMOUNT_INVALID",
    "error_message" : "Refund amount is invalid",
}

Check Refund

Check Refund
GET/payment_refund

  • Request Parameter
Field Type Required Description Example Value
refund_no string N Refund order No. refund_no and out_refund_id cannot be both null at the same time. “20192637473637452”
out_refund_id string N External refund order No. out_refund_id and refund_no cannot be both null at the same time. “R2019263747363”
  • Response Data
Field Required Description
is_success Y Whether the service request is successful. Optional values are True and False.
response N Service response data. It is returned when is_success=True.
error N Service error code. It is returned when is_success=False. For details, see Error Code below.
error_message N Service error description. It is returned when is_success=False.

When is_success=True, response contains the following fields:

Field Required Description
refund_no Y Refund order No.
out_refund_id Y External refund order No.
status Y Refund order status
refund_amount Y Refund amount
payment_no Y Payment order No.
finish_time N Refund completion time (refund successful)/Refund form creation time (refund unsuccessful)
  • Error Code
Error Code Meaning
REFUND_NOT_FOUND Refund order not found
ILLEGAL_SECURITY_PROFILE This encryption method is not supported.
Response(JSON) success
HideShow
{
  "is_success": true,
  "response": {
    "finish_time": "2021-12-23 19:22:14",
    "out_refund_id": "R201637473637452",
    "payment_no": "2637473637382",
    "refund_amount": "8.88",
    "refund_no": "2637473637452",
    "result_code": "0000",
    "status": "SUCCESS"
  },
  "return_message": "OK"
}
Response(JSON) failed
HideShow
{
    "is_success": False,
    "error": "REFUND_NOT_FOUND",
    "error_message" : "Refund order not found",
}

Export Reconciliation Report

Export Reconciliation Report
GET/download_bill

  • Request Parameter

Specify the Version field in the header of this API to 3.0.

Field Type Required Description Example Value
merchant_no string Y Merchant No. HPXXXXX
start_date string Y Start time 20190101
end_date string Y End time 20190301
  • Response Data This API can query the records of the recent three months. A txt file will be returned.
  • Format of the returnd data is as follows (slide left and right to view all fields):
Test: company's reconciliation report of 20190101 to 20190120
Transaction Type,Transaction Time,Order No.,External order No.,Credit,Debit,Balance,Transaction Amount,Exchange Rate Adopted for Settlement,Service Fee,Refund Amount,Refund Order,External Refund Order No.,Fee for Withdrawal,Converted Currency,Exchange Rate Adopted for Conversion,Amount After Conversion,Payment Channel
Collection via WeChat Pay,2019-01-02 10:55:10,`2019010210551024660612990,`13260056057_wechat_1546397710000,0.99 HKD,-,1.06 HKD,1.00 HKD,1,0.01 HKD,-,-,-,-,-,-,-,WECHATPAYCN
Collection via WeChat Pay,2019-01-02 11:07:05,`2019010211070452703917004,`13260056057_wechat_1546398424000,0.99 HKD,-,2.05 HKD,1.00 HKD,1,0.00 HKD,-,-,-,-,-,-,-,WECHATPAYCN
Refund,2019-01-04 10:50:34,`2019010410503295208356067,`,-,-0.99 HKD,1.06 HKD,-,-,-,1.00 HKD,`2019010211070452703917004,`13260056057_wechat_1546398424000,-,-,-,-,WECHATPAYCN

WeChat Pay Interface for Customs Declaration

WeChat Pay Interface for Customs Declaration
POST/wechatpay/declaration

Before this API is used, the customs code, merchant’s customs registration No. (CR code), and merchant’s customs registration name must be submitted to HipoPay for binding. Declaration must be conducted sub-order by sub-order.

Request Parameter Description Required Type Example
out_order_no Merchant order No. Y String 18051893975650968
payment_no HipoPay payment order No. Y String 20180518163203689
customs Customs code (for example, SHENZHEN) Y String SHENZHEN
mch_customs_no Merchant’s customs registration No. Y String 123456789BTW
duty Duty (some customs require this parameter.) N int 88
The unit is 0.01 CNY. For example, the value 88 indicates 0.88 CNY.
action_type ADD (add): default value N String ADD
MODIFY(modify): parameters need to be consistent with first-declaration
sub_order_no Merchant sub-order No. Y String 2018051716124
sub_order_amount Amount of the sub-order Y float 46.44
transport_amount Logistics charge Y float 23.22
product_amount Selling price of the product Y float 23.22

The following parameters are required if identity verification is needed.

Request Parameter Description Required Type Example
cert_id ID card No. Y String 510921199308772318
name Name Y String Lisa

Note: Amount payable = Logistics charge + Selling price of the product

Return Parameter Description
out_order_no Merchant order No.
payment_no HipoPay payment order No.
customs Customs code
wechatpay_no WeChat Pay payment order No.
state UNDECLARED - undeclared
SUBMITTED - declaration submitted (The status would be SUBMITTED if order data is re-submitted for customs declaration in the customs system having a modification API.)
PROCESSING - processing declaration
SUCCESS - declaration successful
FAIL - declaration failed
EXCEPT - customs interface exception
modify_time Last modification time
ver_dept Verification department
pay_transaction_id Transaction ID
sub_order_no Merchant sub-order No.
sub_order_amount Amount of the sub-order
transport_amount Logistics charge
product_amount Selling price of the product
cert_check_result Identity verification result
UNCHECKED - Merchant didn’t upload buyer’s identify information.
SAME - Buyer’s identity information uploaded by the merchant is consistent with payer’s identity information.
DIFFERENT - Buyer’s identity information uploaded by the merchant is inconsistent with payer’s identity information.
raw_response Origional customs’ data (see example below)
"raw_response": "{
                "modify_time": "20190403171704", 
                "state": "UNDECLARED", 
                "cert_check_result": "SAME", 
                "transaction_id": "4200xxxxxxxx665", 
                "return_code": "SUCCESS", 
                "return_msg": "成功", 
                "sign": "23XxXxXxXx78E", 
                "sub_order_id": "42000002XXXXX8166500", 
                "mch_id": "1517456621", 
                "out_trade_no": "201904xxxxxxx26156", 
                "err_code_des": "OK", 
                "appid": "wx3zzzzzzz4", 
                "sub_order_no": "XXXXX", 
                "verify_department_trade_id": "42000002XXXXX8166500", 
                "verify_department": "NETSUNION", 
                "result_code": "SUCCESS", 
                "err_code": "0"
            }"
raw_response Parameter Description
modify_time
state UNDECLARED - undeclared
SUBMITTED - declaration submitted (The status would be SUBMITTED if order data is re-submitted for customs declaration in the customs system having a modification API.)
PROCESSING - processing declaration
SUCCESS - declaration successful
FAIL - declaration failed
EXCEPT - customs interface exception
cert_check_result Identity verification result
UNCHECKED - Merchant didn’t upload buyer’s identify information.
SAME - Buyer’s identity information uploaded by the merchant is consistent with payer’s identity information.
DIFFERENT - Buyer’s identity information uploaded by the merchant is inconsistent with payer’s identity information.
transaction_id Payment order No. generated by WeChat Pay
return_code Declaration result code
return_msg Declaration result
sign Signature
sub_order_id Sub-order ID used for declaration
mch_id HipoPay merchat No.
out_trade_no HipoPay payment order No.
err_code_des Error code description. If the result is successful, it is OK.
appid App ID allocated by WeChat Pay
sub_order_no Sub-order No. of the merchant
verify_department_trade_id Trade ID from the verification department used for registration with the customs. For example, the trade ID recorded by UnionPay.
verify_department UnionPay - UNIONPAY
NetsUnion - NETSUNION
Others - OTHERS (for example, Balance and Mini Fund)
result_code Service result - SUCCESS/FAIL
err_code Service result code

WeChat Pay Re-declaration

WeChat Pay Re-declaration
POST/wechatpay/redeclaration

  • The declaration API supports re-declaration and modification functions.

  • If the data of a transaction has been reported to the customs but the order data is lost at the electronic port, or if the data of a transaction has been reported to the customs but the merchant registration No., registration name or customs code is incorrect, the re-declaration and modification functions can be used to re-declare the transaction data.

  • One of the following three request paramters is required. If the order is splited, transfer sub_order_no; if the order is not splited, transfer payment_no or out_order_no.

Parameter Description Required Type Example Value
payment_no HipoPay payment order No. N String 2018051716124
out_order_no Merchant order No. N String 20180518939756968
sub_order_no Sub-order No. N String 20180518939756968

The following two parameters are required.

Parameter Description Required Type Example Value
customs Customs code Y String SHENZHEN
mch_customs_no Merchant’s customs registration No. Y String 123456789BTW

Response data is as follows:

Parameter Description
out_order_no Merchant order No.
payment_no Payment order No.
customs Customs code
wechatpay_no WeChat Pay payent order No.
state UNDECLARED - undeclared
SUBMITTED - declaration submitted (The status would be SUBMITTED if order data is re-submitted for customs declaration in the customs system having a modification API.)
PROCESSING - processing declaration
SUCCESS - declaration successful
FAIL - declaration failed
EXCEPT - customs interface exception
modify_time Last modification time
explanation Declaration result description (If declaration is failed, this field returns the cause of the failure.)

Check WeChat Pay Declaration

Check WeChat Pay Declaration
GET/wechatpay/declaration

One of the following three request paramters is required. If the order is splited, transfer sub_order_no; if the order is not splited, transfer payment_no or out_order_no.

Parameter Description Required Type Example Value
payment_no HipoPay payment order No. N String 2018051816320384498567689
out_order_no Merchant order No. N String 1805123918160384498567689
sub_order_no Sub-order No. N String 18051816320384338567689
customs Customs code Y String BEIJING

Response data is as follows:

Parameter Description
out_order_no Merchant order No.
payment_no HipoPay payment order No.
customs Customs code
wechatpay_no WeChat Pay payment order No.
state UNDECLARED - undeclared
SUBMITTED - declaration submitted (The status would be SUBMITTED if order data is re-submitted for customs declaration in the customs system having a modification API.)
PROCESSING - processing declaration
FAIL - declaration failed
EXCEPT - customs interface exception
modify_time Last modification time
sub_order_no Merchant sub-order No.
sub_order_amount Amount of the sub-order
transport_amount Logistics charge
product_amount Selling price of the product

The following data is returned if identity verification is performed:

Parameter Description
cert_check_result Identity verification result
UNCHECKED - Merchant didn’t upload buyer’s identify information.
SAME - Buyer’s identity information uploaded by the merchant is consistent with payer’s identity information.
DIFFERENT - Buyer’s identity information uploaded by the merchant is consistent with payer’s identity information.

WeChat Pay Customs Code

Customs Name Unified Declaration Solution Customs Code
Guazhou Customs (general administration of customs) Push GUANGZHOU_ZS GUANGZHOU_ZS
Huangpu Entry-Exit Inspection and Quarantine Bureau, P.R. China Request the declaration interface for two times. Push GUANGZHOU_ZS and GUANGZHOU_HP_GJ respectively. GUANGZHOU_HP_GJ
Nansha Entry-Exit Inspection and Quarantine Bureau, P.R. China Request the declaration interface for two times. Push GUANGZHOU_ZS and GUANGZHOU_NS_GJ respectively. GUANGZHOU_NS_GJ
Hangzhou Customs (general administration of customs) Push HANGZHOU_ZS HANGZHOU_ZS
Ningbo Customs Push NINGBO NINGBO
Zhengzhou Customs (Bonded logistics center) push ZHENGZHOU_BS ZHENGZHOU_BS
Chongqing Customs Push CHONGQING CHONGQING
Xi’an Customs Push XIAN XIAN
Shanghai Customs (general administration of customs) Push SHANGHAI_ZS SHANGHAI_ZS
Shenzhen Customs Push SHENZHEN SHENZHEN
Zhengzhou Comprehensive Bonded Zone (general administration of customs) Push ZHENGZHOU_ZH_ZS ZHENGZHOU_ZH_ZS
Tianjin Customs Push TIANJIN TIANJIN
Beijing Customs Push BEIJING BEIJING
Fuzhou Customs Push GUANGZHOU_ZS GUANGZHOU_ZS

Currency Code

Currency 3-Character Code
Chinese Yuan CNY
Great Britain Pound GBP
Hong Kong Dollar HKD
US Dollar USD
Japanese Yen JPY
Canadian Dollar CAD
Australian Dollar AUD
Euro EUR
New Zealand Dollar NZD
Korean Won KRW
Thai Baht THB

Payment Order Status

Status Code Description
INIT Payment order has been created
PAID Payment successful
FAIL Payment failed
USERPAYING Waiting for payment
EXPIRED Timeout

Refund Status

Status Code Description
SUCCESS Refund successful
PROCESSING Processing
FAIL Refund failed

Refund Code

code message Description
0000 Refund Processing
0001 Refund xxxxxxxx Already Exists.
0002 payment xxxxxxxxxx Not Found.
0003 Refund currency error.
0004 Payment not paid yet.
0005 Payment not credited yet.
0006 Payment full refunded.
0007 payment settle_forex rate is -0.1
0008 Payment refundable not enough.
0009 refund amount must more than zero.
0010 merchant has not HKD balance.
0011 Settled Balance not enough.
0012 Unsettled Balance not enough.
0013 Refund xxxxx Invalid
0099 SYSYTEM_ERROR
0101 NOTENOUGH merchant balance not enough for refunding
0102 USER_ACCOUNT_ABNORMAL User account signed out
0103 SYSTEMERROR API Errore
0104 BIZERR_NEED_RETRY Need retry
0105 TRADE_OVERDUE payment expeired
0106 ERROR Channel Error
0107 INVALID_REQ_TOO_MUCH invalid request too much
0108 INVALID_TRANSACTIONID invalid transaction_id
0109 PARAM_ERROR param error
0110 APPID_NOT_EXIST appid not exist
0111 MCHID_NOT_EXIST mchid not exist
0112 ORDERNOTEXIST payment not exist
0113 REQUIRE_POST_METHOD
0114 SIGNERROR
0115 XML_FORMAT_ERROR
0116 FREQUENCY_LIMITED
0117 NOAUTH
0118 CERT_ERROR
0119 REFUND_FEE_MISMATCH double request different amount
0120 INVALID_REQUEST param error
0121 ORDER_NOT_READY payment processing ,try later
0199 SYSYTEM_ERROR wechatpay unknown error
0201 MERCHANT_BALANCE_NOT_ENOUGH
0202 REFUNDMENT_VALID_DATE_EXCEED
0203 SYSTEM_EXCEPTION
0204 ILLEGAL_ARGUMENT
0205 REPEATED_REFUNDMENT_REQUEST
0206 RETURN_AMOUNT_EXCEED
0207 CURRENCY_NOT_SAME
0208 PURCHASE_TRADE_NOT_EXIST
0209 TRADE_NOT_EXIST
0210 TRADE_STATUS_ERROR
0211 REFUND_AMT_RESTRICTION
0212 BUYER_NOT_EXIST
0213 REFUND_CHARGE_ERROR
0214 INVALID_PARAMETER
0215 REASON_TRADE_BEEN_FREEZEN
0216 REQUEST_AMOUNT_EXCEED
0217 ILLEGAL_SIGN
0218 ILLEGAL_SERVICE
0219 ILLEGAL_PARTNER
0220 ILLEGAL_SIGN_TYPE
0221 ILLEGAL_PARTNER_EXTERFACE
0222 ILLEGAL_DYN_MD5_KEY
0223 ILLEGAL_ENCRYPT
0224 ILLEGAL_USER
0225 ILLEGAL_EXTERFACE
0226 ILLEGAL_AGENT
0227 HAS_NO_PRIVILEGE
0228 INVALID_CHARACTER_SET
0229 SYSTEM_ERROR
0230 SESSION_TIMEOUT
0231 ILLEGAL_TARGET_SERVICE
0232 ILLEGAL_ACCESS_SWITCH_SYSTEM
0233 EXTERFACE_IS_CLOSED
0299 SYSYTEM_ERROR alipay unknow error

Generated by HipoPay  on 28 Dec 2021