Skip to content

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
        }
    }
}