WAP (H5) payment allows merchants to trigger wallet payment flows from mobile browsers such as Chrome or Safari.
For WAP/H5 payments, merchants should guide users to open the payment link in a mobile browser such as Chrome, Safari, or Edge. Due to restrictions in in-app browsers (for example WhatsApp, Facebook Messenger, or WeChat), QFPay cannot guarantee that these apps can invoke external wallet apps correctly.Example: Alipay cannot be automatically opened inside the WeChat in-app browser. This is a browser restriction beyond QFPay’s control.
HTTP Request
POST /trade/v1/payment
You can find the corresponding pay_type for each wallet in the table below:
| PayType | Description |
|---|
800212 | WeChat H5 Payment — see WeChat H5 Payment |
801512 | AlipayHK WAP Payment — see Alipay H5 Payment |
800712 | UnionPay WAP Payment |
805812 | PayMe WAP Payment |
Request Parameters
| Name | Parameter | Required | Type | Description |
|---|
| Transaction Amount | txamt | Yes | Int(11) | Amount in smallest unit (e.g. 100 = $1). Recommended to be > 200 to reduce risk control failures. |
| Currency | txcurrcd | Yes | String(3) | Transaction currency. See Currency List. |
| Payment Type | pay_type | Yes | String(6) | The wallet payment type code (e.g. PayMe WAP = 805812). |
| Order Number | out_trade_no | Yes | String(128) | Unique order number per merchant account across all payment/refund requests. |
| Transaction Time | txdtm | Yes | String(20) | Format: YYYY-MM-DD hh:mm:ss |
| Product Name | goods_name | No | String(64) | Product name/identifier. |
| QFPay Merchant ID | mchid | No | String(16) | Assigned by QFPay. Required for some merchants depending on backend configuration. |
| Device ID | udid | No | String(40) | Unique device ID shown in the merchant dashboard. |
| Redirect URL | return_url | No | String(255) | URL the user is redirected to after payment completes. |
| Notification URL | notify_url | No | String(255) | URL to receive asynchronous notifications after payment. |
Response Parameters
| Name | Parameter | Type | Description |
|---|
| Payment Type | pay_type | String(6) | Wallet payment type code. |
| System Time | sysdtm | String(20) | YYYY-MM-DD hh:mm:ss. Used as settlement cutoff. |
| Transaction Time | txdtm | String(20) | As sent in request. |
| Response Message | resperr | String(128) | Description or status message. |
| Amount | txamt | Int(11) | Transaction amount. |
| Debug Info | respmsg | String(128) | Internal response/debug message. |
| External Order No. | out_trade_no | String(128) | Returned for reference. |
| QFPay Order No. | syssn | String(40) | QFPay system-generated order number. |
| Response Code | respcd | String(4) | 0000 = success, 1143/1145 = pending/retry with status check; others = failure. See Status Codes. |
| Payment URL | pay_url | String(512) | Redirect URL (mobile browser), or QR-code display URL (PC browser). |
Always confirm final payment status on your backend (for example via asynchronous notification and/or Transaction Enquiry), especially when respcd is not 0000.
Summary
- Suitable for mobile browser environments (not recommended for in-app browsers inside social apps).
- Set
return_url and notify_url if you need user redirection and/or backend confirmation.
- Use
pay_url to redirect users (mobile) or display a QR code (desktop).
- If
respcd is not 0000, use asynchronous notification and/or Transaction Enquiry to confirm the final result.