WeChat Pay
This guide describes how to add WeChat Pay payment to your Airwallex iOS SDK integration.
- Make sure you add dependency for
AirwallexWeChatPay
(Swift package manager) orAirwallex/AirwallexWechatPay
(Cocoapods) - Set up WechatOpenSDK by following the Wechat docs .
How it works
The diagram below depicts the integration flow for a WeChat Pay payment.
Please make sure that you provide a Universal Link (not a scheme URI link such as "airwallexcheckout://com.airwallex.payment") as the returnURL when creating a payment session. This allows the WeChat app to redirect shoppers back to your app as per iOS system security requirements.
Step 1: (Optional) Create a Customer
Create a Customer object and pass it to your server if you want to save your customer's details and attach payment information to this object. Note that this step is compulsory when you process recurring payments for a new customer.
From your server, access Airwallex API to Create a Customer API.
Step 2: Create a PaymentIntent
Your client app will need a PaymentIntent to create a payment session for Airwallex SDK to present a payment flow.
From your server, access Airwallex API to Create a PaymentIntent API and pass the returned PaymentIntent to the client app.
Step 3: Create a one-off PaymentSession
Create an AWXOneOffSession
with the PaymentIntent
created in the previous step, a returnURL
to your app, and shipping address and shopper country code of this order.
Step 4: Present payment flow to the shopper
Present payment flow with the Session
created in the previous step. Airwallex SDK will then process the payment flow and return payment status to a delegate when the shopper completes or cancels payment.
Step 5: Query WeChat payment result
Implement the callback function onResp
which will be invoked when the shopper is redirected from WeChat back to your app. The onResp
function, declared in the WXApiDelegate
protocol, lets you receive the payment result directly from WeChat. Alternatively, you can retrieve the PaymentIntent
from your server afterward to confirm the payment result.
Retrieve the payment result by calling retrieve Payment Intent API and return it to the client app.