Charge Method
When you receive a URL in the payURL parameter from the Charge API in the backend, use the Charge method to access the URL.
Method
AmazonPay.startTransaction(AmazonPayTransactionRequest amazonPayTransactionRequest, Activity activity, int CHARGE_REQUEST_CODE);
This method returns responses in the onActivityResult()
of the invoking activity. Subsequently, you can perform a status check API call from the backend to retrieve the final transaction status (refer to API/SDK documentation for further details).
Request Parameters
Parameter | Type | Description |
---|---|---|
amazonPayTransactionRequest | AmazonPayTransactionRequest | Metadata necessary for processing the transaction, including the payURL |
activity | Activity | The invoking activity |
Charge_request_code | int | A unique code to identify the response in onActivityResult() |
AmazonPayTransactionRequest
Parameter | Type | Description |
---|---|---|
paymentUrl | String | URL provided by the backend API |
HashMap | String, Object | Additional information such as MerchantID |
Response Parameters
Parameter | Type | Description |
---|---|---|
RESULT_CODE | activity result | Possible values include RESULT_CANCELED and RESULT_OK |
Sample Code for Charge Invocation
// Within your activity
public static final int APAY_CHARGE_REQUEST_CODE = 2;
private void chargeUsingChargeIntent(@NonNull final String payUrl) {
AmazonPayTransactionRequest amazonPayTransactionRequest = createAmazonPaymentRequest(payUrl);
try {
AmazonPay.startTransaction(amazonPayTransactionRequest, Activity.this, APAY_CHARGE_REQUEST_CODE);
}
catch (AmazonPayError e) {
// Handle error
}
}
public static AmazonPayTransactionRequest createAmazonPaymentRequest(@NonNull final String paymentUrl) {
return new AmazonPayTransactionRequest(
paymentUrl, new HashMap<String,
Object>() {{put(MERCHANT_ID, BuildConfig.MERCHANT_ID);}});
}
Sample Code for Handling Response
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == APAY_CHARGE_REQUEST_CODE) {
if (resultCode == RESULT_CANCELED) {
AmazonPayError amazonPayError = AmazonPayError.fromIntent(intent);
if (amazonPayError != null) {
// Handle error, cancel transaction
}
else {
// Confirm order using backend status check API
}
}
else if (resultCode == RESULT_OK) {
// Confirm order using backend status check API
}
}
}