> ## Documentation Index
> Fetch the complete documentation index at: https://sdk.qfapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# WAP Payment (Mobile Browser)

> This document explains how to initiate WAP (H5) payments using different wallet types through QFPay from mobile browsers like Chrome or Safari.

WAP (H5) payment allows merchants to trigger wallet payment flows from mobile browsers such as Chrome or Safari.

<Info>
  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.
</Info>

***

## 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](/integration/online-shop/integration-by-payment-type/wechat/wechat-pay-h5)             |
| `801512` | AlipayHK WAP Payment — see [Alipay H5 Payment](/integration/online-shop/integration-by-payment-type/alipay/alipay-wap-h5-payments) |
| `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](/integration/api-reference/currencies).                  |
| 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](/integration/api-reference/status-codes). |
| Payment URL        | `pay_url`      | String(512) | Redirect URL (mobile browser), or QR-code display URL (PC browser).                                                                             |

<Warning>
  Always confirm final payment status on your backend (for example via asynchronous notification and/or Transaction Enquiry), especially when `respcd` is not `0000`.
</Warning>

***

## 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.
