PHP code example of amzn / amazon-pay-sdk-v2-php
1. Go to this page and download the library: Download amzn/amazon-pay-sdk-v2-php library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
amzn / amazon-pay-sdk-v2-php example snippets
_VERSION=" . Amazon\Pay\API\Client::SDK_VERSION . "\n";
$amazonpay_config = array(
'public_key_id' => 'ABC123DEF456XYZ', // RSA Public Key ID (this is not the Merchant or Seller ID)
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'sandbox' => true, // true (Sandbox) or false (Production) boolean
'region' => 'us', // Must be one of: 'us', 'eu', 'jp'
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2' //Amazon Signing Algorithm, Optional: uses AMZN-PAY-RSASSA-PSS if not specified
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$amazonpay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID', // LIVE-XXXXX or SANDBOX-XXXXX
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'us', // Must be one of: 'us', 'eu', 'jp'
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2' //Amazon Signing Algorithm, Optional: uses AMZN-PAY-RSASSA-PSS if not specified
);
$amazonpay_config = array(
'public_key_id' => 'ABC123DEF456XYZ', // RSA Public Key ID (this is not the Merchant or Seller ID)
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'sandbox' => true, // true (Sandbox) or false (Production) boolean
'region' => 'us', // Must be one of: 'us', 'eu', 'jp'
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2', //Amazon Signing Algorithm, Optional: uses AMZN-PAY-RSASSA-PSS if not specified
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4', // (optional) Solution Provider Platform Version in Semantic Versioning Format
'proxy' => [
'host' => 'proxy_host',
'port' => 'proxy_port',
'username' => 'proxy_username',
'password' => 'proxy_password',
]
);
$headers = array('x-amz-pay-idempotency-key' => uniqid());
$client = new Amazon\Pay\API\Client($amazonpay_config);
$payload = '{"scanData":"UKhrmatMeKdlfY6b","scanReferenceId":"0b8fb271-2ae2-49a5-b35d7","merchantCOE":"US","ledgerCurrency":"USD","chargeTotal":{"currencyCode":"USD","amount":"2.00"},"metadata":{"merchantNote":"Merchant Name","communicationContext":{"merchantStoreName":"Store Name","merchantOrderId":"789123"}}}';
$result = $client->instoreMerchantScan($payload);
$response = json_decode($result['response'], true);
$id = $response['chargePermissionId'];
$headers = array('x-amz-pay-authtoken' => 'other_merchant_super_secret_token');
$result = $client->instoreMerchantScan($payload, $headers);
$payload = array(
'scanData' => 'UKhrmatMeKdlfY6b',
'scanReferenceId' => uniqid(),
'merchantCOE' => 'US',
'ledgerCurrency' => 'USD',
'chargeTotal' => array(
'currencyCode' => 'USD',
'amount' => '2.00'
),
'metadata' => array(
'merchantNote' => 'Merchant Name',
'communicationContext' => array(
'merchantStoreName' => 'Store Name',
'merchantOrderId' => '789123'
)
)
);
$payload = json_encode($payload);
ay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => false,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
);
$payload = array(
'amazonOrderReferenceId' => 'P01-0000000-0000000',
'deliveryDetails' => array(array(
'trackingNumber' => '01234567890',
'carrierCode' => 'FEDEX'
))
);
try {
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->deliveryTrackers($payload);
if ($result['status'] === 200) {
// success
echo $result['response'] . "\n";
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
session_start();
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$payload = array(
'webCheckoutDetails' => array(
'checkoutReviewReturnUrl' => 'https://localhost/store/checkout_review',
'checkoutResultReturnUrl' => 'https://localhost/store/checkout_result'
),
'storeId' => 'amzn1.application-oa2-client.000000000000000000000000000000000'
);
$headers = array('x-amz-pay-Idempotency-Key' => uniqid());
try {
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->createCheckoutSession($payload, $headers);
header("Content-type:application/json; charset=utf-8");
echo $result['response'];
if ($result['status'] !== 201) {
http_response_code(500);
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
http_response_code(500);
}
ay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$payload = array(
'webCheckoutDetails' => array(
'checkoutReviewReturnUrl' => 'https://localhost/store/checkout_review',
'checkoutResultReturnUrl' => 'https://localhost/store/checkout_result'
),
'storeId' => 'amzn1.application-oa2-client.000000000000000000000000000000000'
);
$headers = array('x-amz-pay-Idempotency-Key' => uniqid());
try {
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->createCheckoutSession($payload, $headers);
if ($result['status'] === 201) {
// created
$response = json_decode($result['response'], true);
$checkoutSessionId = $response['checkoutSessionId'];
echo "checkoutSessionId=$checkoutSessionId\n";
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
ay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
try {
$checkoutSessionId = '00000000-0000-0000-0000-000000000000';
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getCheckoutSession($checkoutSessionId);
if ($result['status'] === 200) {
$response = json_decode($result['response'], true);
$checkoutSessionState = $response['statusDetails']['state'];
$chargeId = $response['chargeId'];
$chargePermissionId = $response['chargePermissionId'];
// NOTE: Once Checkout Session moves to a "Completed" state, buyer and shipping
// details must be obtained from the getCharges() function call instead
$buyerName = $response['buyer']['name'];
$buyerEmail = $response['buyer']['email'];
$shipName = $response['shippingAddress']['name'];
$shipAddrLine1 = $response['shippingAddress']['addressLine1'];
$shipCity = $response['shippingAddress']['city'];
$shipState = $response['shippingAddress']['stateOrRegion'];
$shipZip = $response['shippingAddress']['postalCode'];
$shipCounty = $response['shippingAddress']['countryCode'];
echo "checkoutSessionState=$checkoutSessionState\n";
echo "chargeId=$chargeId; chargePermissionId=$chargePermissionId\n";
echo "buyer=$buyerName ($buyerEmail)\n";
echo "shipName=$shipName\n";
echo "address=$shipAddrLine1; $shipCity $shipState $shipZip ($shipCounty)\n";
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
ay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$payload = array(
'paymentDetails' => array(
'paymentIntent' => 'Authorize',
'canHandlePendingAuthorization' => false,
'chargeAmount' => array(
'amount' => '1.23',
'currencyCode' => 'USD'
),
),
'merchantMetadata' => array(
'merchantReferenceId' => '2020-00000001',
'merchantStoreName' => 'Store Name',
'noteToBuyer' => 'Thank you for your order!'
)
);
try {
$checkoutSessionId = '00000000-0000-0000-0000-000000000000';
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->updateCheckoutSession($checkoutSessionId, $payload);
if ($result['status'] === 200) {
$response = json_decode($result['response'], true);
$amazonPayRedirectUrl = $response['webCheckoutDetails']['amazonPayRedirectUrl'];
echo "amazonPayRedirectUrl=$amazonPayRedirectUrl\n";
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
$amazonpay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$payload = array(
'chargeAmount' => array(
'amount' => '14.00',
'currencyCode' => 'USD'
)
);
try {
$checkoutSessionId = '00000000-0000-0000-0000-000000000000';
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->completeCheckoutSession($checkoutSessionId, $payload);
if ($result['status'] === 202) {
// Charge Permission is in AuthorizationInitiated state
$response = json_decode($result['response'], true);
$checkoutSessionState = $response['statusDetails']['state'];
$chargeId = $response['chargeId'];
$chargePermissionId = $response['chargePermissionId'];
}
else if ($result['status'] === 200) {
$response = json_decode($result['response'], true);
$checkoutSessionState = $response['statusDetails']['state'];
$chargePermissionId = $response['chargePermissionId'];
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (Exception $e) {
// handle the exception
echo $e;
}
$amazonpay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
try {
$chargePermissionId = 'S01-0000000-0000000';
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getChargePermission($chargePermissionId);
if ($result['status'] === 200) {
$response = json_decode($result['response'], true);
$chargePermissionState = $response['statusDetails']['state'];
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'];
}
} catch (Exception $e) {
// handle the exception
echo $e;
}
$amazonpay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$payload = array(
'merchantMetadata' => array(
'merchantReferenceId' => '32-41-323141-32',
'merchantStoreName' => 'AmazonTestStoreFront',
'noteToBuyer' => 'Some Note to buyer',
'customInformation' => ''
)
);
try {
$chargePermissionId = 'S01-0000000-0000000';
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->updateChargePermission($chargePermissionId, $payload);
if ($result['status'] === 200) {
$response = json_decode($result['response'], true);
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'];
}
} catch (Exception $e) {
// handle the exception
echo $e;
}
include 'vendor/autoload.php';
$amazonpay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$payload = array(
'closureReason' => 'No more charges
onpay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'sandbox' => true,
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$payload = array(
'chargePermissionId' => 'S01-0000000-0000000',
'chargeAmount' => array(
'amount' => '14.00',
'currencyCode' => 'USD'
),
'captureNow' => true,
'softDescriptor' => 'Descriptor',
'canHandlePendingAuthorization' => false
);
$headers = array('x-amz-pay-Idempotency-Key' => uniqid());
try {
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->createCharge($payload, $headers);
if ($result['status'] === 201) {
$response = json_decode($result['response'], true);
$chargeState = $response['statusDetails']['state'];
$chargeId = $response['chargeId'];
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'];
}
} catch (Exception $e) {
// handle the exception
echo $e;
}
onpay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'sandbox' => true,
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
try {
$chargeId = 'S01-0000000-0000000-C000000';
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getCharge($chargeId);
if ($result['status'] === 200) {
$response = json_decode($result['response'], true);
$chargeState = $response['statusDetails']['state'];
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'];
}
} catch (Exception $e) {
// handle the exception
echo $e;
}
ay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$payload = array(
'captureAmount' => array(
'amount' => '1.23',
'currencyCode' => 'USD'
),
'softDescriptor' => 'For CC Statement'
);
try {
$chargeId = 'S01-0000000-0000000-C000000';
$headers = array('x-amz-pay-Idempotency-Key' => uniqid());
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->captureCharge($chargeId, $payload, $headers);
if ($result['status'] === 200) {
$response = json_decode($result['response'], true);
$state = $response['statusDetails']['state'];
$reasonCode = $response['statusDetails']['reasonCode'];
$reasonDescription = $response['statusDetails']['reasonDescription'];
echo "state=$state; reasonCode=$reasonCode; reasonDescription=$reasonDescription\n";
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
mazonpay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$payload = array(
'cancellationReason' => 'REASON DESCRIPTION'
);
try {
$chargeId = 'S01-0000000-0000000-C000000';
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->cancelCharge($chargeId, $payload);
if ($result['status'] === 200) {
$response = json_decode($result['response'], true);
$chargeState = $response['statusDetails']['state'];
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'];
}
} catch (Exception $e) {
// handle the exception
echo $e;
}
onpay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
$payload = array(
'chargeId' => 'S01-0000000-0000000-C000000',
'refundAmount' => array(
'amount' => '14.00',
'currencyCode' => 'USD'
),
'softDescriptor' => 'Descriptor'
);
$headers = array('x-amz-pay-Idempotency-Key' => uniqid());
try {
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->createRefund($payload, $headers);
if ($result['status'] === 201) {
$response = json_decode($result['response'], true);
$refundState = $response['statusDetails']['state'];
$refundId = $response['refundId'];
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'];
}
} catch (Exception $e) {
// handle the exception
echo $e;
}
onpay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
try {
$refundId = 'S01-0000000-0000000-R000000'
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getRefund($refundId);
if ($result['status'] === 200) {
$response = json_decode($result['response'], true);
$chargeState = $response['statusDetails']['state'];
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'];
}
} catch (Exception $e) {
// handle the exception
echo $e;
}
zonpay_config = array(
'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
'region' => 'YOUR_REGION_CODE',
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
'integrator_id' => 'AXXXXXXXXXXXXX', // (optional) Solution Provider Platform Id in Amz UID Format
'integrator_version' => '1.2.3', // (optional) Solution Provider Plugin Version in Semantic Versioning Format
'platform_version' => '0.0.4' // (optional) Solution Provider Platform Version in Semantic Versioning Format
);
try {
$buyerToken = 'BUYER_TOKEN';
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getBuyer($buyerToken);
if ($result['status'] === 200) {
$response = json_decode($result['response'], true);
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'];
}
} catch (Exception $e) {
// handle the exception
echo $e;
}
ay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
);
$client = new Amazon\Pay\API\Client($amazonpay_config);
$payload = '{"storeId":"amzn1.application-oa2-client.xxxxx","webCheckoutDetails":{"checkoutReviewReturnUrl":"https://localhost/test/CheckoutReview.php","checkoutResultReturnUrl":"https://localhost/test/CheckoutResult.php"}}';
$signature = $client->generateButtonSignature($payload);
echo $signature . "\n";
/* getPostSignedHeaders convenience – Takes values for canonical request sorts and parses it and
* returns a signature for the request being sent
* @param $http_request_method [String]
* @param $request_uri [String]
* @param $request_parameters [array()]
* @param $request_payload [string]
*/
$method = 'POST';
// API Merchant Scan
$url = 'https://pay-api.amazon.com/sandbox/' . $versiom . '/in-store/merchantScan';
$payload = array(
'scanData' => 'UKhrmatMeKdlfY6b',
'scanReferenceId' => '0b8fb271-2ae2-49a5-b35d4',
'merchantCOE' => 'US',
'ledgerCurrency' => 'USD',
'chargeTotal' => array(
'currencyCode' => 'USD',
'amount' => '2.00'
),
'metadata' => array(
'merchantNote' => 'Ice Cream',
'customInformation' => 'In-store Ice Cream',
'communicationContext' => array(
'merchantStoreName' => 'Store Name',
'merchantOrderId' => '789123'
)
)
);
// Convert to json string
$payload = json_encode($payload);
$requestParameters = array();
$client = new Amazon\Pay\API\Client($amazonpay_config);
$postSignedHeaders = $client->getPostSignedHeaders($method, $url, $requestParameters, $payload);
/* createSignature convenience – Takes values for canonical request sorts and parses it and
* returns a signature for the request being sent
* @param $http_request_method [String]
* @param $request_uri [String]
* @param $request_parameters [Array()]
* @param $pre_signed_headers [Array()]
* @param $request_payload [String]
* @param $timeStamp [String]
*/
// Example request method:
$method = 'POST';
// API Merchant Scan
$url = 'https://pay-api.amazon.com/sandbox/in-store/' . $version . '/merchantScan';
$payload = array(
'scanData' => 'ScanData',
'scanReferenceId' => '0b8fb271-2ae2-49a5-b35d4',
'merchantCOE' => 'US',
'ledgerCurrency' => 'USD',
'chargeTotal' => array(
'currencyCode' => 'USD',
'amount' => '2.00'
),
'metadata' => array(
'merchantNote' => 'Ice Cream',
'customInformation' => 'In-store Ice Cream',
'communicationContext' => array(
'merchantStoreName' => 'Store Name',
'merchantOrderId' => '789123'
)
)
);
// Convert to json string
$payload = json_encode($payload);
$requestParameters = array();
$client = new Amazon\Pay\API\Client($amazonpay_config);
// Create an array that will contain the parameters for the charge API call
$pre_signed_headers = array();
$pre_signed_headers['Accept'] = 'application/json';
$pre_signed_headers['Content-Type'] = 'application/json';
$pre_signed_headers['X-Amz-Pay-Region'] = 'na';
$client = new Client($amazonpay_config);
$signedInput = $client->createSignature($method, $url, $requestParameters, $pre_signed_headers, $payload, '20180326T203730Z');
ay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => false
);
$requestPayload = array(
'reportTypes' => '_GET_FLAT_FILE_OFFAMAZONPAYMENTS_ORDER_REFERENCE_DATA_',
'processingStatuses' => 'COMPLETED',
'pageSize' => '10'
);
try {
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getReports($requestPayload);
if ($result['status'] === 200) {
// success
$response = $result['response'];
echo $response;
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
ay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => true
);
try {
$reportId = "1234567890";
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getReportById($reportId);
if ($result['status'] === 200) {
// success
$response = $result['response'];
echo $response;
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
ay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => true
);
try {
$reportDocumentId = "amzn1.tortuga.0.000000000-0000-0000-0000-000000000000.00000000000000";
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getReportDocument($reportDocumentId);
if ($result['status'] === 200) {
// success
$response = $result['response'];
echo $response;
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
ay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => true
);
try {
$reportTypes = "_GET_FLAT_FILE_OFFAMAZONPAYMENTS_ORDER_REFERENCE_DATA_,_GET_FLAT_FILE_OFFAMAZONPAYMENTS_BILLING_AGREEMENT_DATA_";
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getReportSchedules($reportTypes);
if ($result['status'] === 200) {
// success
$response = $result['response'];
echo $response;
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
ay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => true
);
try {
$reportScheduleId = "1234567890";
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getReportScheduleById($reportScheduleId);
if ($result['status'] === 200) {
// success
$response = $result['response'];
echo $response;
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
ay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => true
);
$headers = array('x-amz-pay-Idempotency-Key' => uniqid());
try {
$requestPayload = array(
'reportType' => '_GET_FLAT_FILE_OFFAMAZONPAYMENTS_AUTHORIZATION_DATA_',
'startTime' => '20221114T074550Z',
'endTime' => '20221114T074550Z'
);
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->createReport($requestPayload);
if ($result['status'] === 200) {
// success
$response = $result['response'];
echo $response;
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
ay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => true
);
$headers = array('x-amz-pay-Idempotency-Key' => uniqid());
try {
$requestPayload = array(
'reportType' => '_GET_FLAT_FILE_OFFAMAZONPAYMENTS_ORDER_REFERENCE_DATA_',
'scheduleFrequency' => 'P1D',
'nextReportCreationTime' => '20221114T074550Z',
'deleteExistingSchedule' => false
);
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->createReportSchedule($requestPayload);
if ($result['status'] === 200) {
// success
$response = $result['response'];
echo $response;
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
ay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => true
);
try {
$reportScheduleId = "1234567890";
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->cancelReportSchedule($reportScheduleId);
if ($result['status'] === 200) {
// success
$response = $result['response'];
echo $response;
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
zonpay_config = array(
'public_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => false
);
try {
$queryParameters = array(
'startTime' => '20240301T224539Z',
'endTime' => '20240330T230345Z',
'pageSize' => '10',
'nextToken' => ''
);
$headers = array('x-amz-pay-idempotency-key' => uniqid());
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getDisbursements($queryParameters, $headers);
print_r($result);
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
include 'vendor/autoload.php';
ic_key_id' => 'MY_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'US',
'sandbox' => true,
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2',
);
try{
$payload = array(
"shippingAddress" => array(
"name" => "Susie Smith",
"addressLine1" => "10 Ditka Ave",
"addressLine2" => "Suite 2500",
"city" => "Chicago",
"county" => null,
"district" => null,
"stateOrRegion" => "IL",
"postalCode" => "60602",
"countryCode" => "US",
"phoneNumber" => "800-000-0000"
),
"billingAddress" => null,
"chargeAmount" => array(
"amount" => "10",
"currencyCode" => "USD"
),
"totalOrderAmount" => array(
"amount" => "10",
"currencyCode" => "USD"
),
"paymentIntent" => "Confirm",
"canHandlePendingAuthorization" => "false"
);
$headers = array('x-amz-pay-Idempotency-Key' => uniqid());
$client = new Amazon\Pay\API\Client($amazonpay_config);
$checkoutSessionId = "your-checkout-session-id";
$result = $client->finalizeCheckoutSession($checkoutSessionId,$payload, $headers);
if ($result['status'] === 200) {
// success
$response = $result['response'];
echo $response;
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
include 'vendor/autoload.php';
lic_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'JP',
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2'
);
try {
$payload = array(
"uniqueReferenceId" => "Unique_Reference_Id", // Mandatory
"ledgerCurrency" => "JPY",
"businessInfo" => array(
"email" => "[email protected] ",
"businessType" => "CORPORATE",
"businessLegalName" => "密林コーヒー",
"businessCategory" => "Beauty",
"businessAddress" => array(
"addressLine1" => "扇町4丁目5-1",
"addressLine2" => "フルフィルメントセンタービル",
"city" => "小田原市",
"stateOrRegion" => "神奈川県",
"postalCode" => "250-0001",
"countryCode" => "JP",
"phoneNumber" => array(
"countryCode" => "81",
"number" => "2062062061"
)
),
"businessDisplayName" => "Abhi's Cafe",
"annualSalesVolume" => array(
"amount" => "100000",
"currencyCode" => "JPY"
),
"countryOfEstablishment" => "JP",
"customerSupportInformation" => array(
"customerSupportEmail" => "[email protected] ",
"customerSupportPhoneNumber" => array(
"countryCode" => "1",
"number" => "1234567",
"extension" => "123"
)
)
),
"beneficiaryOwners" => [array(
"personFullName" => "Abhishek Kumar",
"residentialAddress" => array(
"addressLine1" => "扇町4丁目5-1",
"addressLine2" => "フルフィルメントセンタービル",
"city" => "小田原市",
"stateOrRegion" => "神奈川県",
"postalCode" => "250-0001",
"countryCode" => "JP",
"phoneNumber" => array(
"countryCode" => "81",
"number" => "2062062061"
)
)
)],
"primaryContactPerson" => array(
"personFullName" => "Abhishek Kumar"
),
"integrationInfo" => array(
"ipnEndpointUrls" => array(
"https://yourdomainname.com/ipnendpoint1",
"https://yourdomainname.com/ipnendpoint2"
)
),
"stores" => array(
array(
"domainUrls" => array(
"https://yourdomainname.com"
),
"storeName" => "Rufus's Cafe",
"privacyPolicyUrl" => "https://yourdomainname.com/privacy",
"storeStatus" => array(
"state" => "ACTIVE",
"reasonCode" => null
)
)
),
"merchantStatus" => array(
"statusProvider" => "Ayden",
"state" => "ACTIVE",
"reasonCode" => null
)
);
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->createMerchantAccount($payload, $headers);
print_r($result);
if ($result['status'] === 201) {
// success
$response = $result['response'];
print_r($response);
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
include 'vendor/autoload.php';
lic_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'JP',
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2'
);
try {
$payload = array(
"businessInfo" => array(
"email" => "[email protected] ",
"businessType" => "CORPORATE",
"businessLegalName" => "密林コーヒー",
"businessCategory" => "Beauty",
"businessAddress" => array(
"addressLine1" => "扇町4丁目5-1",
"addressLine2" => "フルフィルメントセンタービル",
"city" => "小田原市",
"stateOrRegion" => "神奈川県",
"postalCode" => "250-0025",
"countryCode" => "JP",
"phoneNumber" => array(
"countryCode" => "81",
"number" => "2062062065"
)
),
"businessDisplayName" => "Abhi's Golden Cafe",
"annualSalesVolume" => array(
"amount" => "500000",
"currencyCode" => "JPY"
),
"countryOfEstablishment" => "JP",
"customerSupportInformation" => array(
"customerSupportEmail" => "[email protected] ",
"customerSupportPhoneNumber" => array(
"countryCode" => "1",
"number" => "9999999",
"extension" => "123"
)
)
)
);
$headers = array('x-amz-pay-authtoken' => 'AUTH_TOKEN');
$client = new Amazon\Pay\API\Client($amazonpay_config);
$merchantAccountId = "YOUR_MERCHANT_ID";
$result = $client->updateMerchantAccount($merchantAccountId, $payload, $headers);
if ($result['status'] === 200) {
// success
$response = $result['response'];
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}
include 'vendor/autoload.php';
lic_key_id' => 'YOUR_PUBLIC_KEY_ID',
'private_key' => 'keys/private.pem',
'region' => 'JP',
'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2'
);
try {
$payload = array(
"uniqueReferenceId" => "Unique_Reference_Id" // Mandatory
);
$headers = array('x-amz-pay-Idempotency-Key' => uniqid());
$client = new Amazon\Pay\API\Client($amazonpay_config);
$merchantAccountId = "YOUR_MERCHANT_ID";
$result = $client->claimMerchantAccount($merchantAccountId, $payload, $headers = null);
if ($result['status'] === 303 || $result['status'] === 200) {
// success
$response = $result['response'];
} else {
// check the error
echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
}
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}