Alipay, China's leading third-party online payment solutionAlipay, China's leading third-party online payment solution

Hosted mode

This guide instructs on how to integrate the hosted Antom Checkout Page (CKP) using minimal code, helping your customers to complete the payment by clicking a designated button on your website and redirecting to Antom's payment page. 

User experience

Hosted mode:

image.png

Hosted and redirect mode:

image.png

Payment flow

The following process shows how to integrate the hosted CKP:

托管模式英文.png

  1. The buyer places an order on the merchant side.
  2. Create a payment session request.

When the buyer places an order on the merchant side, the merchant calls the createPaymentSession (Checkout Payment) API to access the H5 URL of Antom Checkout Page.

  1. Handle Antom Checkout Page URL.

The merchant front end loads the Antom Checkout Page URL. On this page, the buyer selects the payment method and completes the payment. After the payment is processed, the buyer is redirected to the Checkout Page's result page and then redirected to the merchant result page. Alternatively, you can configure on the Antom Dashboard to redirect the buyer directly to the merchant result page.

  1. Obtain payment results.

You can retrieve payment results through asynchronous notifications. Configure the paymentNotifyUrl parameter in the createPaymentSession (Checkout Payment) API to specify the URL to receive asynchronous notifications. Antom sends an asynchronous notification through the notifyPayment API when a payment request succeeds or expires.

Integration steps

Follow these steps to start the integration:

  1. Create a payment session
  2. Redirect to Antom Checkout Page
  3. Display payment results
  4. Obtain payment results

Step 1: Create a payment session Server-side

Buyers can select a payment method provided by Antom when making payments. For payment method configurations, see Specify a payment method. When the buyer makes a payment, you need to collect key information, such as the payment request ID, order details, payment redirect URL, and payment notification URL. Call the createPaymentSession (Checkout Payment) API to create a payment session and return the Antom Checkout Page URL to the front end for redirection.

Create a payment session

Use Basic integration or Low-code integration on the Antom Checkout Page to create a payment session.

Basic integration

Creating a payment session involves the following parameters:

Parameter

Required or not

Description

productCode

Yes

The value of this field in this scenario is fixed as CASHIER_PAYMENT.

productScene

Yes

The value of this field in this scenario is fixed as CHECKOUT_PAYMENT.

paymentRequestId

Yes

The unique ID assigned by a merchant to identify a payment request.

paymentAmount

Yes

The payment amount that the merchant requests to receive in the order currency.

paymentRedirectUrl

Yes

The merchant page URL that the user is redirected to after the payment is completed.

paymentNotifyUrl

No

The URL that is used to receive the payment result notification. You can also set the URL to receive the result notification in Antom Dashboard.

settlementStrategy

No

The settlement strategy for the payment request. Specify the settlementCurrency  parameter in the API if you signed up for multiple settlement currencies.

order

Yes

The order information, such as amount, order ID, and order description. Specify the buyer's information order.buyer for card payment scenarios.

locale

No

Language tag specified for the Checkout Page. If this field is empty or set to automatic, the default language setting of the browser will be used, which is usually English.

The above parameters are the basic parameters for creating a payment session. For complete and additional requirements for specific payment methods, please refer to createPaymentSession (Checkout Payment).

The request sample:

copy
{
  "order": {
    "goods": [
      {
        "goodsBrand": "AMSDM",
        "goodsCategory": "card/ssr/adc",
        "goodsName": "Goods No.1",
        "goodsQuantity": "1",
        "goodsSkuName": "SKU1",
        "goodsImageUrl": "https://ac.alipay.com/storage/2020/6/4/5f7a45a1-3398-4029-8791-a9545a496642.svg",
        "goodsUnitAmount": {
          "currency": "KRW",
          "value": "30000"
        },
        "goodsUrl": "HangZhou LeiFenTa",
        "referenceGoodsId": "20da2d58-d6e2-84d2-01b6-eee69eccb402"
      }
    ],
    "orderAmount": {
      "currency": "KRW",
      "value": "30000"
    },
    "orderDescription": "AMSDM_GIFT",
    "referenceOrderId": "20da2d58-d6e2-84d2-01b6-eee69eccb402"
  },
  "paymentAmount": {
    "currency": "KRW",
    "value": "30000"
  },
  "paymentNotifyUrl": "https://www.antom.com",
  "paymentRedirectUrl": "https://www.antom.com",
  "paymentRequestId": "20da2d58-d6e2-84d2-01b6-eee69eccb402",
  "productCode": "CASHIER_PAYMENT",
  "settlementStrategy": {
    "settlementCurrency": "USD"
  },
  "productScene": "CHECKOUT_PAYMENT"
}

Receive payment response

The following example shows a payment response, which contains the following parameters:

  • paymentSessionData: The encrypted payment session data. Pass the data to your front end.
  • paymentSessionExpiryTime: The specific date and time after which the payment session will expire.
  • normalUrl: The URL used to redirect to the Checkout Page.
copy
{
    "normalUrl": "https://ac.alipay.com/page/antom-web-checkout/src/checkout/paymentPage/index.html?sessionData=6WaYoQqC8UG+OrtKL20nf1apMnYKw4+zAbyy2Kv0AEIx0PyZhBU5y0Y/PmBfg/zK4Bu8/XdfWTgWXowmSd+M1A==&&SG&&188&&eyJwYXltZW50U2Vzc2lvbkNvbmZpZyI6eyJwYXltZW50TWV0aG9kQ2F0ZWdvcnlUeXBlIjoiQUxMIiwicHJvZHVjdFNjZW5lIjoiQ0hFQ0tPVVRfUEFZTUVOVCIsInByb2R1Y3RTY2VuZVZlcnNpb24iOiIxLjAifX0=",
    "paymentSessionData": "6WaYoQqC8UG+OrtKL20nf1apMnYKw4+zAbyy2Kv0AEIx0PyZhBU5y0Y/PmBfg/zK4Bu8/XdfWTgWXowmSd+M1A==&&SG&&188&&eyJwYXltZW50U2Vzc2lvbkNvbmZpZyI6eyJwYXltZW50TWV0aG9kQ2F0ZWdvcnlUeXBlIjoiQUxMIiwicHJvZHVjdFNjZW5lIjoiQ0hFQ0tPVVRfUEFZTUVOVCIsInByb2R1Y3RTY2VuZVZlcnNpb24iOiIxLjAifX0=",
    "paymentSessionExpiryTime": "2024-04-19T17:10:09+08:00",
    "paymentSessionId": "6WaYoQqC8UG+OrtKL20nf1apMnYKw4+zAbyy2Kv0AEKxd/W4uVKjKYL6QfTqUS8s",
    "result": {
        "resultCode": "SUCCESS",
        "resultMessage": "success.",
        "resultStatus": "S"
    }
}

Common Questions

Q: Can I use Chinese characters in the value of the request parameters?

A: To avoid incompatibility of a certain payment method, do not use Chinese characters for fields in the request.

Q: How to set the URL to receive the payment notification?

A: Specify paymentNotifyUrl in the createPaymentSession (Checkout Payment) API to receive the asynchronous notification about the payment result (notifyPayment), or configure the receiving URL on Antom Dashboard. If the URL is specified in both the request and Antom Dashboard, the value specified in the request takes precedence.

Step 2: Redirect to Checkout PageClient-side

The merchant server obtains normalUrl, passes it to front end, and redirects to Antom Checkout Page.

After obtaining the normalUrl, you need to redirect the page to Antom Checkout Page in the browser, or open it in a new tab.

Common Questions

Q: How do I handle different payment experiences?

A: You do not need to handle different experiences corresponding to different payment methods; just redirect to normalUrl through the front end page. Different payment experiences are rendered and processed through the Antom Checkout Page.

Step 3: Display payment resultsClient-side

In the createPaymentSession (Checkout Payment) API, you can set the redirect address using the paymentRedirectUrl parameter.

  • In the WEB/WAP payment, it is recommended to pass in the H5 type URL.
  • In the App payment, you must pass the scheme type URL.

When the buyer completes the payment, the page returns to the default browser to load the Antom payment results page. After a brief countdown, it automatically redirects to the merchant redirect URL; while on mobile devices, it returns to the merchant's app. 

Note:

Due to network reasons or buyer's actions, the system cannot guarantee that the redirection will be successful. Therefore, the following solutions are provided:

  • Web/WAP: If you open the H5 payment page in a new tab, it is recommended to add transaction status listening logic to the original page to trigger subsequent processes.
  • App: When redirecting through the system default browser, failure may happen on some models, and the browser may ask the buyer whether to launch a certain app. The buyer may click No, but the buyer may still manually switch back to the merchant app. Therefore, it is recommended that the merchant app listen when the app is launching the payment result page or when the merchant app is manually launched to trigger the subsequent process.

Common Questions

Q: What does the payment results page display?

A: Whether the payment is successful or failed, the Checkout Page will be redirected to the result page. Therefore, do not set paymentRedirectUrl as the "payment success page." Instead, refer to the server results to avoid misunderstanding.

Q: Does redirecting to the results page mean that the payment is successful?

A: The result page cannot be used as a basis for determining whether the payment is successful:

  • After a successful payment, the buyer may not be redirected to the result page due to network or other reasons.
  • Antom does not support concatenating payment result information in the paymentRedirectUrl field.

Step 4: Obtain payment resultsServer-side

APM payment

When a payment succeeds or fails, Antom sends an asynchronous notification (notifyPayment) to the address that you specified in the createPaymentSession (Checkout Payment) API via the paymentNotifyUrl parameter. After receiving the notifications from Antom, you need to return response according to Return a receipt acknowledgement message. 

Antom allows you to specify the URL in the createPaymentSession (Checkout Payment) API via the paymentNotifyUrl parameter. If the address of each payment is the same, you can also configure the address on Antom Dashboard.

The following is the notification request sample code:

copy
{
  "actualPaymentAmount": {
    "currency": "KRW",
    "value": "100"
  },
  "notifyType": "PAYMENT_RESULT",
  "paymentAmount": {
    "currency": "KRW",
    "value": "100"
  },
  "paymentCreateTime": "2024-04-19T01:10:49-07:00",
  "paymentId": "20240419194010800100188350218317930",
  "paymentRequestId": "amsdmpay_yuqian_fyf_0b3bd5e9-14bd-4cea-b288-091d9c6862ed",
  "paymentResultInfo": {},
  "paymentTime": "2024-04-19T01:12:14-07:00",
  "pspCustomerInfo": {
    "pspCustomerId": "a070c0d1b89af442c6aa01886f0183de812a5d3d4fe15c771145b2b844a9dd67",
    "pspName": "TOSSPAY"
  },
  "paymentMethodType": "TOSSPAY",
  "result": {
    "resultCode": "SUCCESS",
    "resultMessage": "success.",
    "resultStatus": "S"
  }
}

To verify the signature of the notification and make a response to the notification, see Sign a request and verify the signature.

Common Questions

Q: When will the notification be sent?

A: The sending time of asynchronous notifications varies in different scenarios.

  • If the payment is successfully completed, Antom will usually send you an asynchronous notification within 3 to 5 seconds. For some payment methods like OTC, the notification might take a bit longer.
  • If the buyer does not submit a payment, when the payment session times out, Antom does not send an asynchronous notification.
  • If the buyer submits a payment but the final payment is not completed:
    • When the last order is closed, if the payment session is still valid, Antom will send asynchronous notifications when the payment session expires.
    • When the last order is closed, if the payment session expired, Antom will send an asynchronous notification when the last order is closed.

Note: The default payment session expiry time is 1 hour. The time it takes to close an order varies for different payment methods, the default is 14 minutes.

Q: Will the asynchronous notification be re-sent?

A: Yes, the asynchronous notification will be re-sent automatically within 24 hours for the following cases:

  • If you didn't receive the asynchronous notification due to network reasons.
  • If you receive an asynchronous notification from Antom, but you didn't make a response to the notification in the Sample code format.

The notification can be resent up to 8 times or until a correct response is received to terminate delivery. The sending intervals are as follows: 0 minutes, 2 minutes, 10 minutes, 10 minutes, 1 hour, 2 hours, 6 hours, and 15 hours.

Q: When responding to asynchronous notification, do I need to add a digital signature?

A: If you receive an asynchronous notification from Antom, you are required to return the response in the Sample code format, but you do not need to countersign the response.

Q: What are the key parameters in the notification that I need to use?

A: Pay attention to the following key parameters:

  • result: indicates the payment result of the order.
  • paymentRequestId: indicates the payment request number you generated for consult, cancel, and reconciliation.
  • paymentId: indicates the payment order number generated by Antom, used for refund and reconciliation.
  • paymentAmount: indicates the payment amount.
  • paymentMethodTpye: indicates the payment method type that is included in payment method options. 

Additional content

Saved card payment

You can help the buyer complete saved card payments by saving and passing the buyer's card token information, the user experience is as follows:

image.png

image.png

Use the following steps to save card information:

  1. When a buyer saves the bank card information on your page, you need to save and associate the buyer's information with the corresponding bank card information (you can obtain the cardToken in the notifyPayment and inquiryPayment API via the paymentResultInfo parameter).
  2. You need to pass the card token information through the createPaymentSession (Checkout Payment) API for the buyer to view and use the saved bank card to complete the payment on the Checkout Page.

Specific parameters are as follows:

Field Name

Description

savedPaymentMethods

The payment information that the buyer stores in the merchant system.

savedPaymentMethods.paymentMethod

The payment method that is used to collect the payment by the merchant or acquirer. 

savedPaymentMethods.paymentMethod.paymentMethodType

The payment method type. In the saved card payment scenario, the value is CARD.

savedPaymentMethods.paymentMethod.paymentMethodId

The unique ID that is used to identify a payment method. In the saved card payment scenario, the value is cardToken.

The following example shows the request initiated by the createPaymentSession (Checkout Payment) API using cardToken when the buyer pays with a saved bank card:

copy
{
    "order": {
        "goods": [
            {
                "goodsBrand": "AMSDM",
                "goodsCategory": "card/ssr/adc",
                "goodsName": "Goods No.1",
                "goodsQuantity": "1",
                "goodsSkuName": "SKU1",
                "goodsImageUrl": "https://ac.alipay.com/storage/2020/6/4/5f7a45a1-3398-4029-8791-a9545a496642.svg",
                "goodsUnitAmount": {
                    "currency": "USD",
                    "value": "1"
                },
                "goodsUrl": "HangZhou LeiFenTa",
                "referenceGoodsId": "20da2d58-d6e2-84d2-01b6-eee69eccb402"
            }
        ],
        "orderAmount": {
            "currency": "USD",
            "value": "1"
        },
        "buyer": {
            "buyerEmail": "test@test.com",
            "buyerName": {
                "firstName": "firstName",
                "fullName": "firstName lastName",
                "lastName": "lastName"
            },
            "buyerPhoneNo": "123456789",
            "referenceBuyerId": "88888888"
        },
        "orderDescription": "AMSDM_GIFT",
        "referenceOrderId": "20da2d58-d6e2-84d2-01b6-eee69eccb402"
    },
    "paymentAmount": {
        "currency": "USD",
        "value": "1"
    },
    "paymentNotifyUrl": "https://kademo.intlalipay.cn/payments/notifySuccess",
    "paymentRedirectUrl": "https://kademo.intlalipay.cn/melitigo/Test_114.html",
    "paymentRequestId": "PAYMENT_20241119211531358_AUTO",
    "productCode": "CASHIER_PAYMENT",
    "settlementStrategy": {
        "settlementCurrency": "USD"
    },
    "productScene": "CHECKOUT_PAYMENT",
    "savedPaymentMethods": [
        {
            "paymentMethodType": "CARD",
            "paymentMethodId": "ALIPAYEfG2*******MwfmN48sP1+rSPQ=="
        }
    ]
}

The sample code returned by Antom after receiving the request is as follows:

copy
{
    "normalUrl": "https://checkout.antom.com/checkout-page/pages/payment/index.html?sessionData=I3kwStYCQUmNzJL%2FDdjLnY%2Bu42fyMLl29XnJUigKBg6d8YMA48bbH6tE5aSetpN4ia1DEMpOlAue7hTx4yry7A%3D%3D%26%26SG%26%26188%26%26eyJleHRlbmRJbmZvIjoie1wiT1BFTl9NVUxUSV9QQVlNRU5UX0FCSUxJVFlcIjpcInRydWVcIixcImRpc3BsYXlBbnRvbUxvZ29cIjpcImZhbHNlXCJ9IiwicGF5bWVudFNlc3Npb25Db25maWciOnsicGF5bWVudE1ldGhvZENhdGVnb3J5VHlwZSI6IkFMTCIsInByb2R1Y3RTY2VuZSI6IkNIRUNLT1VUX1BBWU1FTlQiLCJwcm9kdWN0U2NlbmVWZXJzaW9uIjoiMS4wIn0sInNlY3VyaXR5Q29uZmlnIjp7ImFwcElkIjoiIiwiYXBwTmFtZSI6Ik9uZUFjY291bnQiLCJiaXpUb2tlbiI6IjZUY2RicjJyRjNyUFl4NGhrVnJIcWJ2aiIsImdhdGV3YXkiOiJodHRwczovL2ltZ3Mtc2VhLmFsaXBheS5jb20vbWd3Lmh0bSIsImg1Z2F0ZXdheSI6Imh0dHBzOi8vb3Blbi1zZWEtZ2xvYmFsLmFsaXBheS5jb20vYXBpL29wZW4vcmlza19jbGllbnQiLCJ3b3JrU3BhY2VJZCI6IiJ9fQ%3D%3D",
    "paymentSessionData": "I3kwStYCQUmNzJL/DdjLnY+u42fyMLl29XnJUigKBg6d8YMA48bbH6tE5aSetpN4ia1DEMpOlAue7hTx4yry7A==&&SG&&188&&eyJleHRlbmRJbmZvIjoie1wiT1BFTl9NVUxUSV9QQVlNRU5UX0FCSUxJVFlcIjpcInRydWVcIixcImRpc3BsYXlBbnRvbUxvZ29cIjpcImZhbHNlXCJ9IiwicGF5bWVudFNlc3Npb25Db25maWciOnsicGF5bWVudE1ldGhvZENhdGVnb3J5VHlwZSI6IkFMTCIsInByb2R1Y3RTY2VuZSI6IkNIRUNLT1VUX1BBWU1FTlQiLCJwcm9kdWN0U2NlbmVWZXJzaW9uIjoiMS4wIn0sInNlY3VyaXR5Q29uZmlnIjp7ImFwcElkIjoiIiwiYXBwTmFtZSI6Ik9uZUFjY291bnQiLCJiaXpUb2tlbiI6IjZUY2RicjJyRjNyUFl4NGhrVnJIcWJ2aiIsImdhdGV3YXkiOiJodHRwczovL2ltZ3Mtc2VhLmFsaXBheS5jb20vbWd3Lmh0bSIsImg1Z2F0ZXdheSI6Imh0dHBzOi8vb3Blbi1zZWEtZ2xvYmFsLmFsaXBheS5jb20vYXBpL29wZW4vcmlza19jbGllbnQiLCJ3b3JrU3BhY2VJZCI6IiJ9fQ==",
    "paymentSessionExpiryTime": "2024-11-19T22:15:32+08:00",
    "paymentSessionId": "I3kwStYCQUmNzJL/DdjLnY+u42fyMLl29XnJUigKBg4MqeIEOGdlGab1nYScNND9",
    "result": {
        "resultCode": "SUCCESS",
        "resultMessage": "success.",
        "resultStatus": "S"
    }
}

Specify a payment method

You can modify the parameters in the createPaymentSession (Checkout Payment) API to specify the display of payment methods on Checkout Page, the order of the payment method list, and the display of quick payment methods. Specific parameters are as follows:

Field Name

Description

availablePaymentMethod

Information on payment methods available to the buyer.

availablePaymentMethod.paymentMethodTypeList

Information on payment method lists available to the buyer.

availablePaymentMethod.paymentMethodTypeList.paymentMethodType

The payment method type that is included in payment method options. 

availablePaymentMethod.paymentMethodTypeList.paymentMethodOrder

The priority order of the payment methods configured by the merchant is indicated by numerical values, with smaller numbers representing higher priority.

availablePaymentMethod.paymentMethodTypeList.expressCheckout

Indicates whether the payment method selected by the buyer is displayed as a quick payment method. The currently supported quick payment methods include ALIPAY_CN, APPLEPAY, and GOOGLEPAY. The valid values include:

  • true: The payment method selected by the buyer is displayed as a quick payment method.
  • false: The payment method selected by the buyer is not displayed as a quick payment method.

The following is a sample code for the merchant to request an optional payment method:

copy
{
  "order": {
    "buyer": {
      "buyerPhoneNo": "12344445555"
    },
    "goods": [
    ],
    "orderAmount": {
      "currency": "KRW",
      "value": "20000"
    },
    "orderDescription": "AMSDM_GIFT",
    "referenceOrderId": "TEST_2024120912631123123"
  },
  "paymentAmount": {
    "currency": "KRW",
    "value": "20000"
  },
  "paymentNotifyUrl": "https://www.baidu.com",
  "paymentRedirectUrl": "https://www.baidu.com",
  "paymentRequestId": "TEST_2024120912631123123",
  "productCode": "CASHIER_PAYMENT",
  "settlementStrategy": {
    "settlementCurrency": "USD"
  },
  "productScene": "CHECKOUT_PAYMENT",
  "locale": "en_US",
  "availablePaymentMethod": {
    "paymentMethodTypeList": [
      {
        "paymentMethodType": "ALIPAY_CN",
        "expressCheckout": true,
        "paymentMethodOrder": "0"
      },
      {
        "paymentMethodType": "TRUEMONEY",
        "expressCheckout": false,
        "paymentMethodOrder": "1"
      }
    ]
  }
}

The sample code returned by Antom after receiving the request is as follows:

copy
{
    "normalUrl": "https://checkout.antom.com/checkout-page/pages/payment/index.html?sessionData=I3kwStYCQUmNzJL%2FDdjLnY%2Bu42fyMLl29XnJUigKBg6d8YMA48bbH6tE5aSetpN4ia1DEMpOlAue7hTx4yry7A%3D%3D%26%26SG%26%26188%26%26eyJleHRlbmRJbmZvIjoie1wiT1BFTl9NVUxUSV9QQVlNRU5UX0FCSUxJVFlcIjpcInRydWVcIixcImRpc3BsYXlBbnRvbUxvZ29cIjpcImZhbHNlXCJ9IiwicGF5bWVudFNlc3Npb25Db25maWciOnsicGF5bWVudE1ldGhvZENhdGVnb3J5VHlwZSI6IkFMTCIsInByb2R1Y3RTY2VuZSI6IkNIRUNLT1VUX1BBWU1FTlQiLCJwcm9kdWN0U2NlbmVWZXJzaW9uIjoiMS4wIn0sInNlY3VyaXR5Q29uZmlnIjp7ImFwcElkIjoiIiwiYXBwTmFtZSI6Ik9uZUFjY291bnQiLCJiaXpUb2tlbiI6IjZUY2RicjJyRjNyUFl4NGhrVnJIcWJ2aiIsImdhdGV3YXkiOiJodHRwczovL2ltZ3Mtc2VhLmFsaXBheS5jb20vbWd3Lmh0bSIsImg1Z2F0ZXdheSI6Imh0dHBzOi8vb3Blbi1zZWEtZ2xvYmFsLmFsaXBheS5jb20vYXBpL29wZW4vcmlza19jbGllbnQiLCJ3b3JrU3BhY2VJZCI6IiJ9fQ%3D%3D",
    "paymentSessionData": "I3kwStYCQUmNzJL/DdjLnY+u42fyMLl29XnJUigKBg6d8YMA48bbH6tE5aSetpN4ia1DEMpOlAue7hTx4yry7A==&&SG&&188&&eyJleHRlbmRJbmZvIjoie1wiT1BFTl9NVUxUSV9QQVlNRU5UX0FCSUxJVFlcIjpcInRydWVcIixcImRpc3BsYXlBbnRvbUxvZ29cIjpcImZhbHNlXCJ9IiwicGF5bWVudFNlc3Npb25Db25maWciOnsicGF5bWVudE1ldGhvZENhdGVnb3J5VHlwZSI6IkFMTCIsInByb2R1Y3RTY2VuZSI6IkNIRUNLT1VUX1BBWU1FTlQiLCJwcm9kdWN0U2NlbmVWZXJzaW9uIjoiMS4wIn0sInNlY3VyaXR5Q29uZmlnIjp7ImFwcElkIjoiIiwiYXBwTmFtZSI6Ik9uZUFjY291bnQiLCJiaXpUb2tlbiI6IjZUY2RicjJyRjNyUFl4NGhrVnJIcWJ2aiIsImdhdGV3YXkiOiJodHRwczovL2ltZ3Mtc2VhLmFsaXBheS5jb20vbWd3Lmh0bSIsImg1Z2F0ZXdheSI6Imh0dHBzOi8vb3Blbi1zZWEtZ2xvYmFsLmFsaXBheS5jb20vYXBpL29wZW4vcmlza19jbGllbnQiLCJ3b3JrU3BhY2VJZCI6IiJ9fQ==",
    "paymentSessionExpiryTime": "2024-11-19T22:15:32+08:00",
    "paymentSessionId": "I3kwStYCQUmNzJL/DdjLnY+u42fyMLl29XnJUigKBg4MqeIEOGdlGab1nYScNND9",
    "result": {
        "resultCode": "SUCCESS",
        "resultMessage": "success.",
        "resultStatus": "S"
    }
}