Mobile Website Browser - TrueMoney
Accept TrueMoney payment from the shopper’s mobile browser by redirecting them to the TrueMoney page.
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.
Shell1curl -X POST \2 https://api.airwallex.com/api/v1/pa/payment_intents/create \3 -H 'Content-Type: application/json' \4 -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJhNDc...' \5 -d '{67 "request_id": "ed11e38a-7234-11ea-aa94-7fd44ffd1b89",8 "amount": 500,9 "currency": "THB",10 "merchant_order_id": "85d7b0e0-7235-11ea-862e-9f6aa1adfca6"11 "return_url": "https://www.airwallex.com"12 }'
Step 2. Redirect to TrueMoney to complete payment
When a shopper selects to pay with TrueMoney on their mobile browser, call the Confirm a Payment Intent API API to get a redirect URL.
POST /api/v1/pa/payment_intents/{id}/confirm
JSON1{2 "request_id": "ed11e38a-7234-11ea-aa94-7fd44ffd1b89",3 "payment_method": {4 "type": "truemoney",5 "truemoney": {6 "flow": "mobile_web",7 "os_type": "android"8 }9 }10}
You will get a response similar to the following.
JSON1{2 // ... other fields omitted.3 "next_action": {4 "type": "redirect",5 "method": "GET",6 "url": "https://api.airwallex.com/pa/redirect/hk/hkpdxjqhmgsyvijy6hz_bwvqvc?checksum=1c11d21315c1"7 }8}
You should redirect the shopper to the TrueMoney page with the next_action.url returned in the confirm Payment Intent response.
Note, if you use the mobile browser flow in your app’s Webview and pull up the TrueMoney app, please add the HTTP header Referer when you request next_action.url. Otherwise, you may be unable to pull up the TrueMoney app on the shopper’s mobile phone if the shopper chooses to pay in the TrueMoney app. For exmaple:
Andriod
Kotlin1webview.loadUrl(url, mapOf("Referer" to "https://api.airwallex.com"))
iOS
Swift1var urlRequest = URLRequest(url: url)2urlRequest.setValue("https://api.airwallex.com", forHTTPHeaderField: "Referer")3webView.load(urlRequest)
Step 3. Query the payment result status
To get the payment result, we suggest you poll the status of the Payment Intent via the Retrieve a Payment Intent API API. You may start polling the Payment Intent status after the shopper is redirected back to your website or mobile app, i.e., the return_url passed when creating the Payment Intent.
GET /api/v1/pa/payment_intents/{id}
In addition, Airwallex will notify you of the payment result asynchronously via the webhooks. Please refer to the webhook documentation to set up your webhook accordingly. Although subscribing to webhook events is optional, it is recommended to subscribe to the payment_intent.succeeded webhook which indicates that the shopper has paid the order.