WeChat Pay In-store: Consumer QRC
Shopper-generated Barcode Scanned by Merchant (Quick Pay)
Specific input parameters
Field name | M/O | Type | Description |
---|---|---|---|
specin.quickpayauthcode | M | ascii | The authorization code from the WeChat app. This value is obtained by scanning the one-time barcode or QR code from the consumer device. The value must be composed of 18 numbers. The first two numbers must be one of the following: 10, 11, 12, 13, 14 or 15. |
For standard input parameters, see Input parameters for the TRANSACTION call.
Note
WeChat Pay Quick Pay is available for currencies EUR, GBP, and USD.
This payment method supports the dynamic descriptor field (see The dynamic descriptor).
Transaction Flow
- The shopper indicates to the merchant that they would like to pay with Wechat Pay, requesting the merchant to scan the shopper's barcode.
- The merchant activates the Wechat Pay application on their terminal / POS device (if necessary).
- The shopper opens their Wechat Pay app and presents their unique barcode to the merchant.
- The merchant scans the Barcode, which creates a transaction with PPRO for processing.
- The merchant awaits approval from PPRO (via Wechat Pay) - the transaction is complete.
Specific output parameters
Specific output parameters for the TRANSACTION call
This payment method will emit the output parameters outlined below:
Field name | Type | Description |
---|---|---|
SPECOUT.SRCAMOUNT | ascii | The total amount in the minor unit of the consumer wallet currency (SPECOUT.SRCCURRENCY) |
SPECOUT.SRCCURRENCY | ascii | The currency of the consumer's WeChat wallet |
SPECOUT.EXPIRYTIMESTAMP | ascii | The expiry time of the transaction. A future time defined as UNIX timestamp (seconds elapsed since 1970-01-01 00:00:00 UTC). Example: 1574869035 is the UNIX timestamp for Wednesday, 2019-11-19 15:37:15 UTC |
For standard output parameters, check Output parameters for the TRANSACTION call.
In most cases, payments finish synchronously within seconds and the consumer does not need to enter their passcode in the WeChat app. The response state is SUCCEEDED
.
In other cases, the consumer must confirm the payment by entering their payment passcode in the WeChat app. In these cases, the response state is PENDING
. In such scenarios, the parameter SPECOUT.REDIRECTOPTIONAL
is returned with the value 1
(see Well-known SPECOUT parameters).
We recommend you do not redirect the POS terminal to the payment page (the REDIRECTURL
), as only a static page will be shown indicating that the payment flow must continue on the consumer device. In these cases, the SPECOUT.EXPIRYTIMESTAMP
parameter is returned as well.
Specific output parameters for the REFUND call
Field name | Type | Description |
---|---|---|
SPECOUT.DSTAMOUNT | ascii | Total amount in the minor unit of the consumer wallet currency (see also SPECOUT.DSTCURRENCY) |
SPECOUT.DSTCURRENCY | ascii | The currency of the consumer’s WeChat wallet (usually CNY) |
Payment scenarios
The WeChat Pay payment method is best suited to the following scenario:
Point of sale
The consumer presents the one-time barcode/QR code generated in the WeChat app to the merchant. This code is usually displayed on the screen of the consumer's mobile device. The merchant uses a scanner attached to the POS device to scan the consumer barcode/QR code.
You must send the value of the scanned barcode/QR code alongside the TRANSACTION
request via the specin.quickpayauthcode
.
In the WeChat app, the consumer might be prompted to enter their payment passcode to confirm the transaction. After the consumer pays on their mobile device, PPRO will send you a notification on the transaction status change. You must inform the merchant / POS device to confirm payment.
Caution
Do not poll PPRO for transaction status. Wait for PPRO's notification to trigger a status pull for the final transaction state.
Note
PPRO only offers support with the Payment Gateway integration itself. We do not support POS device driving or other aspects of the end-merchant presentation of WeChat Pay.
Updated about 1 year ago