WeChat Pay Official account payments

Learn how to initiate payments from your WeChat Official page.

Payment Type
Payment flow
Recurring
Refunds
Partial Refunds
Captures
Partial Captures
Chargebacks
Wallet

Redirect

No Yes Yes No No No

A WeChat Official page is similar to a Facebook page or Verified Twitter profile. In addition to keeping your WeChat followers up-to-date, you can also serve your mobile website within the WeChat app, and initiate WeChat Pay payments.

When initiating a payment from the WeChat app, the shopper is prompted to verify the payment. If successful, they are redirected back to your mobile website and presented with the payment result.

Official account payments must be initiated from the WeChat in-app browser. They cannot be initiated from another browser, such as Chrome or Safari.


The WeChat Pay Official account payment flow is supported by our:

Prerequisites

To initiate Official account payments you need to register for a WeChat Official (服务号) account:

  1. Go to https://pay.weixin.qq.com/index.php/public/wechatpay and click Apply Now.
  2. Download, fill in, and submit the vendor information form.

WeChat will contact you to verify your information and provide an agreement you need to sign. Once approved, you can accept WeChat Pay payments initiated using the WeChat browser.

Integrate with Checkout Web SDK

Our Checkout SDK for Web can initiate payments from within the WeChat app without any additional integration.

Integrate with API

In this section, we show the integration steps required to initiate payments from the WeChat app using our API integration.

Before you begin this section, make sure you read and understand our API Integration guide.

Step 1: Make a payment

When a shopper initiates the WeChat Pay payment:

  • Make a /payments API call, providing:
    • reference: Your unique reference for this payment.

    • amount
    • paymentMethod.type: Set to wechatpayWeb
    • returnUrl: The URL of your payments page. The shopper is redirected to this page when they've verified the payment.
    {
      "merchantAccount":"YourMerchantAccount",
      "reference":"wechat pay official account test",
      "amount":{
        "currency":"CNY",
        "value":"1000"
      },
      "paymentMethod":{
        "type":"wechatpayWeb"
      },
      "returnUrl":"https://your-company.com/...",
    }

    This returns a /payments response containing a:

    • resultCode of RedirectShopper.
    • redirect object containing a url.

    {
      "resultCode":"RedirectShopper",
      "details":[
        {
          "key":"payload",
          "type":"text"
        }
      ],
      "paymentData":"abcxyz...",
      "redirect":{
        "method":"GET",
        "url":"https://test.adyen.com/hpp/skipDetails.shtml?brandCode=wechatpayWeb&sdfsdf..."
      }
    }

Step 2: Redirect shopper

To complete the payment, the shopper will need to verify it in the WeChat app.

  • Redirect the shopper to the URL specified at  redirect.url.

    This prompts the shopper to enter their WeChat Pay PIN to verify the payment. Once completed, they are redirected back to your mobile website using the returnUrl you specified earlier. This will be appended with a payload.

    https://your-company.com/?payload=sdfsdfsdf...&type=complete&resultCode=received

    Do not use the resultCode you receive from the returnUrl to determine whether the payment was successful. Instead, verify the result on your server.

Step 3: Present payment result  

  1. Submit the payload to the /payments/details endpoint to verify the result of the payment:

    {
      "details":{
        "payload":"sdfsdfsdf..."
      }
    }

    The response will contain a pspReference, which is our unique identifier for this payment, and a resultCode

  2. Use the resultCode you received from the /payments/details endpoint to present the payment result to the shopper in your mobile website.

    You can track the status of the payment using notifications.

WeChat Pay result codes

The resultCode you will receive for WeChat Pay is:

  • Received: The payment was successfully received. You will receive a notification when the status of the payment has been updated. If successful, you will receive the funds in 2 days.

To find out more about result codes and how you can action them, see Result codes.

WeChat Pay notifications

If you're accepting WeChat Pay payments you will need to set up notifications to know whether a payment is successful. Each WeChat Pay notification includes:

  • pspReference: identifies which payment is being referred to.
  • eventCode : indicates the status of the payment.

If you haven't already set up notifications, refer to our notifications documentation for instructions.

Successful payments

You'll know a WeChat Pay payment has been successful when you receive a notification for the transaction that has:

  • eventCodeAUTHORISATION.
  • successtrue.

Testing Official account payments

Before accepting payments from your shoppers, test your setup. There is currently no test platform for WeChat Pay. If you have a personal WeChat account you can test your integration by either:

  • Making live WeChat Pay payments with a low value.
  • Cancelling the transaction when you are asked to verify the payment.

You can check the status of a WeChat Pay payment in your Customer Area > Transactions > Payments.

See also