Airwallex logo

Mobile App

Accept WeChat Pay on your mobile app on your shopper’s Android or iOS phone. You can choose to integrate Airwallex mobile SDK that supports multiple payment methods, or build the integration by yourself using WeChat Pay mobile SDKs.

Wechat - mobile app

Step 1. Initialize a payment Intent

Create a PaymentIntent object with a request_id, amount, currency and a merchant_order_id from your backend server.

https://pci-api.airwallex.com/api/v1/pa/payment_intents/create \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer your_bearer_token \
  -d '{
    "request_id": "ed11e38a-7234-11ea-aa94-7fd44ffd1b89",
    "amount": 100,
    "currency": "CNY",
    "merchant_order_id": "85d7b0e0-7235-11ea-862e-9f6aa1adfca6"
    "return_url": "https://www.airwallex.com"
  }'

Step 2. Accepting payments

When a customer selects to pay with WeChat Pay in a mobile app, you can call the following API endpoints to SDK data in the response that can be used to call WeChat mobile SDK.

  • Obtain required SDK data to process payment

Request:

https://pci-api.airwallex.com/api/v1/pa/payment_intents/{id}/confirm \
  -H 'Content-Type: application/json' \
  -H 'client-secret: 
Ss3thJHPE6TyI4r-8BJFlqNz1mA7DblVuN0c8GOthnchp7Sf-_JuQnuX3sqzv7_0EiTMOs2kcGopFrMoFC0w7IzPCErJ1a0P7sFnpwB6uz-H2h_6rDhhSd2tKJF-l2myVOXQV4Zou3s_OsX6thLiUKI=" \
  -d '{
    "request_id": "ed11e38a-7234-11ea-aa94-7fd44ffd1b89",
    "payment_method": {
      "type": "wechatpay",
      "wechatpay": 
      {
        "flow": "inapp"
      }
    }
  }'

Response:

{
  "next_action": {
    "type": "call_sdk",
    "data": {
	  "appId": "wxce926ea78004260e",
      "timeStamp": "1585293957",
      "nonceStr": "GMRIbt9xxgPhNfRlhLnijtXaYbIX8yuA",
      "prepayId": "xxxxxxxxxxxxxxx",
      "partnerId": "subMerchantId",
      "package": "Sign=WXPay",
      "sign": "qK9sPC5sjcsxfxpRDhpUpJqLcI1tI9eirUzEpseqVITdVHbSwAs5g78rMOPkhQVtfbh8THa3pxhUyEGP5XE7UB2gcUecMdwm2aiWoypsHJuPZAVnmGzPm4kMgj5n61XRiZcTlFAyovaztgno3T5cIDTfr0t3HQEVxo1n6vFVp4O4XLpRJ6KSLckEFSaHN27GdSh91chaZL7SpEY1KlrvykyO0Wt6/HPU+RZNIIKH3S1bRwoV5ZrQZmwELDj7TLKK0mK32z8SA6guLp2geqz45KziUWzIqA51ZM7YUZP5TPRxBu1XqTqZe5RzRIAn9SDhA7DbqDk0pgoiK5g=="
    }
  }
}
  • Pass the data to WeChat Pay SDK

Pass what you get in the previous step to the WeChat Pay SDK. After the customer completes payment, WeChat will redirect the customer to your app and do a callback.

  • Wait for notification from Airwallex

Airwallex will notify you on the payment result asynchronously via the webhook API. Please refer to webhook documentation to set up your webhook accordingly. Although subscribing to different events is optional, it is recommended to at least subscribe to the ‘payment_intent.succeeded’ which indicates that the shopper has successfully paid for the order via WeChat.

  • Query the PaymentIntent status (Optional)

You may also query the status of a payment anytime via the PaymentIntents API

GET /payment_intents/{id}