WeChat Pay In-store: Consumer QRC

Shopper-generated Barcode Scanned by Merchant (Quick Pay)

Specific input parameters

Field nameM/OTypeDescription
specin.quickpayauthcodeMasciiThe 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.



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

  1. The shopper indicates to the merchant that they would like to pay with Wechat Pay, requesting the merchant to scan the shopper's barcode.
  2. The merchant activates the Wechat Pay application on their terminal / POS device (if necessary).
  3. The shopper opens their Wechat Pay app and presents their unique barcode to the merchant.
  4. The merchant scans the Barcode, which creates a transaction with PPRO for processing.
  5. 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 nameTypeDescription
SPECOUT.SRCAMOUNTasciiThe total amount in the minor unit of the consumer wallet currency (SPECOUT.SRCCURRENCY)
SPECOUT.SRCCURRENCYasciiThe currency of the consumer's WeChat wallet
SPECOUT.EXPIRYTIMESTAMPasciiThe expiry time of the transaction. A future time defined as UNIX timestamp (seconds elapsed since 1970-01-01 00:00:00 UTC).

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 nameTypeDescription
SPECOUT.DSTAMOUNTasciiTotal amount in the minor unit of the consumer wallet currency (see also SPECOUT.DSTCURRENCY)
SPECOUT.DSTCURRENCYasciiThe 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.



Do not poll PPRO for transaction status. Wait for PPRO's notification to trigger a status pull for the final transaction state.



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.