Payment UI
API Method
References
1. Generate Payment Token
To prepare a payment token request, refer to the required parameters below.
Payment Token APIRefer to: Payment Token API
{
"merchantID": "JT04",
"invoiceNo": "1595219400",
"description": "2 days 1 night hotel room",
"amount": 10.0,
"currencyCode": "THB",
"nonceStr": "a8092512-b144-41b0-8284-568bb5e9264c",
"paymentChannel": ["ALL"]
}
2. Receive Payment Token Response
To receive a payment token response, refer to the sample payment token response below. The response will contain the payment token ID which must be passed to the merchant application.
String paymentToken = "roZG9I1hk/GYjNt+BYPYbxQtKElbZDs9M5cXuEbE+Z0QTr/yUcl1oG7t0AGoOJlBhzeyBtf5mQi1UqGbjC66E85S4m63CfV/awwNbbLbkxsvfgzn0KSv7JzH3gcs/OIL";val paymentToken = "roZG9I1hk/GYjNt+BYPYbxQtKElbZDs9M5cXuEbE+Z0QTr/yUcl1oG7t0AGoOJlBhzeyBtf5mQi1UqGbjC66E85S4m63CfV/awwNbbLbkxsvfgzn0KSv7JzH3gcs/OIL"NSString *paymentToken = @"roZG9I1hk/GYjNt+BYPYbxQtKElbZDs9M5cXuEbE+Z0QTr/yUcl1oG7t0AGoOJlBhzeyBtf5mQi1UqGbjC66E85S4m63CfV/awwNbbLbkxsvfgzn0KSv7JzH3gcs/OIL";let paymentToken: String = "roZG9I1hk/GYjNt+BYPYbxQtKElbZDs9M5cXuEbE+Z0QTr/yUcl1oG7t0AGoOJlBhzeyBtf5mQi1UqGbjC66E85S4m63CfV/awwNbbLbkxsvfgzn0KSv7JzH3gcs/OIL"let paymentToken = 'roZG9I1hk/GYjNt+BYPYbxQtKElbZDs9M5cXuEbE+Z0QTr/yUcl1oG7t0AGoOJlBhzeyBtf5mQi1UqGbjC66E85S4m63CfV/awwNbbLbkxsvfgzn0KSv7JzH3gcs/OIL';
3. Prepare Payment UI Request
To prepare a payment ui request, refer to the parameters below.
Payment UI Request ParametersRefer to: Payment UI Request API Parameters
PaymentUIRequest paymentUIRequest = new PaymentUIBuilder(activity).build();val paymentUIRequest = PaymentUIBuilder(activity).build()PaymentUIRequest *paymentUIRequest = [[[PaymentUIBuilder alloc] initWithUiViewController: uiViewController] build];let paymentUIRequest: PaymentUIRequest = PaymentUIBuilder(uiViewController: uiViewController).build()let paymentUIRequest = {};
4. Prepare Transaction Request
To prepare a transaction request, refer to the parameters below.
Payment Transaction Request API ParametersRefer to: Do Payment Request API Parameters
TransactionResultRequest transactionResultRequest = new TransactionResultRequestBuilder(paymentToken)
.with(paymentUIRequest)
.build();val transactionResultRequest = TransactionResultRequestBuilder(paymentToken).apply {
with(paymentUIRequest)
}.build()TransactionResultRequest *transactionResultRequest = [[[[TransactionResultRequestBuilder alloc] initWithPaymentToken: paymentToken]
withPaymentUIRequest: paymentUIRequest]
build];let transactionResultRequest: TransactionResultRequest = TransactionResultRequestBuilder(paymentToken: paymentToken)
.with(paymentUIRequest)
.build()let transactionResultRequest = {
'paymentToken': paymentToken,
'payment': {
'data': {
...paymentUIRequest
}
}
};
5. Execute Payment UI Request
To execute a payment request and receive the API response, refer to the parameters below.
Payment Transaction Response API ParametersRefer to: Do Payment Response API Parameters
PGWSDK.getInstance().proceedTransaction(transactionResultRequest, new APIResponseCallback<TransactionResultResponse>() {
@Override
public void onResponse(TransactionResultResponse response) {
if (response.getResponseCode().equals(PaymentUIResponseCode.TransactionCompleted)) {
//Inquiry transaction status inquiry by using payment token.
String paymentToken = response.getPaymentToken();
} else {
//Get error response and display error
}
}
@Override
public void onFailure(Throwable error) {
//Get error response and display error
}
});PGWSDK.getInstance().proceedTransaction(transactionResultRequest, object : APIResponseCallback<TransactionResultResponse> {
override fun onResponse(response: TransactionResultResponse) {
if (response.responseCode == APIResponseCode.TransactionCompleted) {
//Inquiry transaction status inquiry by using payment token.
val paymentToken = response.paymentToken
} else {
//Get error response and display error
}
}
override fun onFailure(error: Throwable) {
//Get error response and display error
}
})[[PGWSDK shared] proceedTransactionWithTransactionResultRequest: transactionResultRequest response: ^(TransactionResultResponse * _Nonnull response) {
if([response.responseCode isEqualToString: PaymentUIResponseCode.TransactionCompleted]) {
//Inquiry transaction status inquiry by using payment token.
NSString *paymentToken = response.paymentToken;
} else {
//Get error response and display error.
}
} failure: ^(NSError * _Nonnull error) {
//Get error response and display error.
}];PGWSDK.shared.proceedTransaction(transactionResultRequest: transactionResultRequest, { (response: TransactionResultResponse) in
if response.responseCode == PaymentUIResponseCode.TransactionCompleted {
//Inquiry transaction status inquiry by using payment token.
let paymentToken: String = response.paymentToken
} else {
//Get error response and display error
}
}) { (error: NSError) in
//Get error response and display error
}await RTNPGW.paymentUI(JSON.stringify(transactionResultRequest)).then((response: string) => {
let transactionResultResponse = JSON.parse(response);
if (transactionResultResponse?.responseCode == PaymentUIResponseCode.TransactionCompleted) {
//Inquiry transaction status inquiry by using payment token.
let paymentToken = transactionResultResponse?.paymentToken;
} else {
//Get error response and display error
}
}).catch ((error: Error) => {
//Get error response and display error
});
6. Initiate Transaction Status Inquiry
To retrieve transaction details and status, merchants must initiate the Transaction Status Inquiry API. Refer to the sample code below.
Transaction Status Inquiry APIRefer to: Transaction Status Inquiry API
Full Sample Code
The following sample code demonstrates requests and parameters for each step of the process.
//Step 1: Generate payment token.
String paymentToken = "roZG9I1hk/GYjNt+BYPYbxQtKElbZDs9M5cXuEbE+Z0QTr/yUcl1oG7t0AGoOJlBhzeyBtf5mQi1UqGbjC66E85S4m63CfV/awwNbbLbkxsvfgzn0KSv7JzH3gcs/OIL";
//Step 2: Construct payment ui request.
PaymentUIRequest paymentUIRequest = new PaymentUIBuilder(activity).build();
//Step 3: Construct transaction request.
TransactionResultRequest transactionResultRequest = new TransactionResultRequestBuilder(paymentToken)
.with(paymentUIRequest)
.build();
//Step 4: Execute payment ui request.
PGWSDK.getInstance().proceedTransaction(transactionResultRequest, new APIResponseCallback<TransactionResultResponse>() {
@Override
public void onResponse(TransactionResultResponse response) {
if (response.getResponseCode().equals(PaymentUIResponseCode.TransactionCompleted)) {
//Inquiry transaction status inquiry by using payment token.
String paymentToken = response.getPaymentToken();
} else {
//Get error response and display error
}
}
@Override
public void onFailure(Throwable error) {
//Get error response and display error
}
});//Step 1: Generate payment token.
val paymentToken = "roZG9I1hk/GYjNt+BYPYbxQtKElbZDs9M5cXuEbE+Z0QTr/yUcl1oG7t0AGoOJlBhzeyBtf5mQi1UqGbjC66E85S4m63CfV/awwNbbLbkxsvfgzn0KSv7JzH3gcs/OIL"
//Step 2: Construct payment ui request.
val paymentUIRequest = PaymentUIBuilder(activity).build()
//Step 3: Construct transaction request.
val transactionResultRequest = TransactionResultRequestBuilder(paymentToken).apply {
with(paymentUIRequest)
}.build()
//Step 4: Execute payment ui request.
PGWSDK.getInstance().proceedTransaction(transactionResultRequest, object : APIResponseCallback<TransactionResultResponse> {
override fun onResponse(response: TransactionResultResponse) {
if (response.responseCode == APIResponseCode.TransactionCompleted) {
//Inquiry transaction status inquiry by using payment token.
val paymentToken = response.paymentToken
} else {
//Get error response and display error
}
}
override fun onFailure(error: Throwable) {
//Get error response and display error
}
})//Step 1: Generate payment token.
NSString *paymentToken = @"roZG9I1hk/GYjNt+BYPYbxQtKElbZDs9M5cXuEbE+Z0QTr/yUcl1oG7t0AGoOJlBhzeyBtf5mQi1UqGbjC66E85S4m63CfV/awwNbbLbkxsvfgzn0KSv7JzH3gcs/OIL";
//Step 2: Construct payment ui request.
PaymentUIRequest *paymentUIRequest = [[[PaymentUIBuilder alloc] initWithUiViewController: uiViewController] build];
//Step 3: Construct transaction request.
TransactionResultRequest *transactionResultRequest = [[[[TransactionResultRequestBuilder alloc] initWithPaymentToken: paymentToken]
withPaymentUIRequest: paymentUIRequest]
build];
//Step 4: Execute payment ui request.
[[PGWSDK shared] proceedTransactionWithTransactionResultRequest: transactionResultRequest response: ^(TransactionResultResponse * _Nonnull response) {
if([response.responseCode isEqualToString: PaymentUIResponseCode.TransactionCompleted]) {
//Inquiry transaction status inquiry by using payment token.
NSString *paymentToken = response.paymentToken;
} else {
//Get error response and display error.
}
} failure: ^(NSError * _Nonnull error) {
//Get error response and display error.
}];//Step 1: Generate payment token.
let paymentToken: String = "roZG9I1hk/GYjNt+BYPYbxQtKElbZDs9M5cXuEbE+Z0QTr/yUcl1oG7t0AGoOJlBhzeyBtf5mQi1UqGbjC66E85S4m63CfV/awwNbbLbkxsvfgzn0KSv7JzH3gcs/OIL"
//Step 2: Construct payment ui request.
let paymentUIRequest: PaymentUIRequest = PaymentUIBuilder(uiViewController: uiViewController).build()
//Step 3: Construct transaction request.
let transactionResultRequest: TransactionResultRequest = TransactionResultRequestBuilder(paymentToken: paymentToken)
.with(paymentUIRequest)
.build()
//Step 4: Execute payment ui request.
PGWSDK.shared.proceedTransaction(transactionResultRequest: transactionResultRequest, { (response: TransactionResultResponse) in
if response.responseCode == PaymentUIResponseCode.TransactionCompleted {
//Inquiry transaction status inquiry by using payment token.
let paymentToken: String = response.paymentToken
} else {
//Get error response and display error
}
}) { (error: NSError) in
//Get error response and display error
}//Step 1: Generate payment token.
let paymentToken = 'roZG9I1hk/GYjNt+BYPYbxQtKElbZDs9M5cXuEbE+Z0QTr/yUcl1oG7t0AGoOJlBhzeyBtf5mQi1UqGbjC66E85S4m63CfV/awwNbbLbkxsvfgzn0KSv7JzH3gcs/OIL';
//Step 2: Construct payment ui request.
let paymentUIRequest = {};
//Step 3: Construct transaction request.
let transactionResultRequest = {
'paymentToken': paymentToken,
'payment': {
'data': {
...paymentUIRequest
}
}
};
//Step 4: Execute payment ui request.
await RTNPGW.paymentUI(JSON.stringify(transactionResultRequest)).then((response: string) => {
let transactionResultResponse = JSON.parse(response);
if (transactionResultResponse?.responseCode == PaymentUIResponseCode.TransactionCompleted) {
//Inquiry transaction status inquiry by using payment token.
let paymentToken = transactionResultResponse?.paymentToken;
} else {
//Get error response and display error
}
}).catch ((error: Error) => {
//Get error response and display error
});Updated about 1 year ago
