1. Go to this page and download the library: Download amzn/amazon-pay-sdk-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-php example snippets
namespace AmazonPay;
uire_once, you can use the phar file instead
// ANT_ID',
'access_key' => 'YOUR_ACCESS_KEY',
'secret_key' => 'YOUR_SECRET_KEY',
'client_id' => 'YOUR_LOGIN_WITH_AMAZON_CLIENT_ID',
'region' => 'REGION');
// or, instead of setting the array in the code, you can
// initialze the Client by specifying a JSON file
// $config = 'PATH_TO_JSON_FILE';
// Instantiate the client class with the config type
$client = new Client($config);
namespace AmazonPay;
$config = array(
'merchant_id' => 'YOUR_MERCHANT_ID',
'access_key' => 'YOUR_ACCESS_KEY',
'secret_key' => 'YOUR_SECRET_KEY',
'client_id' => 'YOUR_LOGIN_WITH_AMAZON_CLIENT_ID',
'region' => 'REGION',
'sandbox' => true);
$client = new Client($config);
// Also you can set the sandbox variable in the config() array of the Client class by
$client->setSandbox(true);
$proxy = array();
$proxy['proxy_user_host'] // Hostname for the proxy
$proxy['proxy_user_port'] // Hostname for the proxy
$proxy['proxy_user_name'] // If your proxy
namespace AmazonPay;
$requestParameters = array();
// AMAZON_ORDER_REFERENCE_ID is obtained from the Amazon Pay Address/Wallet widgets
// ACCESS_TOKEN is obtained from the GET parameter from the URL.
// Required Parameter
$requestParameters['amazon_order_reference_id'] = 'AMAZON_ORDER_REFERENCE_ID';
// Optional Parameter
$requestParameters['address_consent_token'] = 'ACCESS_TOKEN';
$requestParameters['mws_auth_token'] = 'MWS_AUTH_TOKEN';
$response = $client->getOrderReferenceDetails($requestParameters);
namespace AmazonPay;
Message body
$headers = getallheaders();
$body = file_get_contents('php://input');
// Create an object($ipnHandler) of the IpnHandler class
$ipnHandler = new IpnHandler($headers, $body);
$client = new AmazonPay\Client($config);
// possible array values: ALL, ORDER_REFERENCE, PAYMENT_AUTHORIZE, PAYMENT_CAPTURE, PAYMENT_REFUND, BILLING_AGREEMENT, CHARGEBACK_DETAILED
$notificationConfiguration['https://dev.null/ipn/onetime'] = array('ORDER_REFERENCE', 'PAYMENT_AUTHORIZE', 'PAYMENT_CAPTURE');
$notificationConfiguration['https://dev.null/ipn/recurring'] = array('BILLING_AGREEMENT');
$notificationConfiguration['https://dev.null/ipn/refunds'] = array('PAYMENT_REFUND', 'CHARGEBACK_DETAILED');
$requestParameters['notification_configuration_list'] = $notificationConfiguration;
// or, if you prefer all IPNs come to the same endpoint, do this one-liner instead:
// $requestParameters['notification_configuration_list'] = array('https://dev.null/ipn' => array('ALL'));
// if you are calling on behalf of another merhcant using delegated access, be sure to set the merchant ID and auth token:
// $requestParameters['merchant_id'] = 'THE_MERCHANT_ID';
// $requestParameters['mws_auth_token'] = 'THE_MWS_AUTH_TOKEN';
$response = $client->setMerchantNotificationConfiguration($requestParameters);
if ($response->toArray()['ResponseStatus'] !== '200') {
print "error occured calling API";
}
// to troubleshoot, you can call GetMerchantNotificationConfiguration to view current IPN settings
$response = $client->getMerchantNotificationConfiguration($requestParameters);
print $response->toXml();
// Create an array that will contain the parameters for the charge API call
$requestParameters = array();
// Adding the parameters values to the respective keys in the array
$requestParameters['amazon_reference_id'] = 'AMAZON_REFERENCE_ID';
// Or
// If $requestParameters['amazon_reference_id'] is not provided,
// either one of the following ID input is needed
$requestParameters['amazon_order_reference_id'] = 'AMAZON_ORDER_REFERENCE_ID';
$requestParameters['amazon_billing_agreement_id'] = 'AMAZON_BILLING_AGREEMENT_ID';
$requestParameters['seller_id'] = null;
$requestParameters['charge_amount'] = '100.50';
$requestParameters['currency_code'] = 'USD';
$requestParameters['authorization_reference_id'] = 'UNIQUE STRING';
$requestParameters['transaction_timeout'] = 0;
$requestParameters['capture_now'] = false; //true for Digital goods
$requestParameters['charge_note'] = 'Example item note';
$requestParameters['charge_order_id'] = '1234-Example-Order';
$requestParameters['store_name'] = 'Example Store';
$requestParameters['platform_Id'] = null;
$requestParameters['custom_information'] = 'Any_Custom_String';
$requestParameters['mws_auth_token'] = null;
// Get the Authorization response from the charge method
$response = $client->charge($requestParameters);
namespace AmazonPay;
// config array parameters that need to be instantiated
$config = array(
'client_id' => 'YOUR_LWA_CLIENT_ID',
'region' => 'REGION');
$client = new Client($config);
// Client ID can also be set using the setter function setClientId($client_id)
$client->setClientId(‘YOUR_LWA_CLIENT_ID’);
// Get the Access Token from the URL
$access_token = 'ACCESS_TOKEN';
// Calling the function getUserInfo with the access token parameter returns object
$userInfo = $client->getUserInfo($access_token);
// Buyer name
$userInfo['name'];
// Buyer Email
$userInfo['email'];
// Buyer User Id
$userInfo['user_id'];
// Returns an object($response) of the class ResponseParser.php
$response = $client->getOrderReferenceDetails($requestParameters);
// XML response
$response->toXml();
// Associative array response
$response->toArray();
// JSON response
$response->toJson();
$ipnHandler = new IpnHandler($headers, $body);
// Raw message response
$ipnHandler->returnMessage();
// Associative array response
$ipnHandler->toArray();
// JSON response
$ipnHandler->toJson();
namespace AmazonPay;
phar';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
date_default_timezone_set('America/Los_Angeles');
$log = new Logger('TestSDK');
$log->pushHandler(new StreamHandler('php://stdout', Logger::DEBUG));
$client = new Client('us.config');
$client->setLogger($log);
$response = $client->getServiceStatus();
composer
.
├── composer.json - Configuration for composer
├── LICENSE.txt
├── NOTICE.txt
├── AmazonPay
│ ├── Client.php - Main class with the API calls
│ ├── ClientInterface.php - Shows the public function definitions in Client.php
│ ├── HttpCurl.php - Client class uses this file to execute the GET/POST
│ ├── HttpCurlInterface.php - Shows the public function definitions in the HttpCurl.php
│ ├── IpnHandler.php - Class handles verification of the IPN
│ ├── IpnHandlerInterface.php - Shows the public function definitions in the IpnHandler.php
│ ├── Regions.php - Defines the regions that is supported
│ ├── ResponseParser.php - Parses the API call response
│ └── ResponseInterface.php - Shows the public function definitions in the ResponseParser.php
├── README.md
└── UnitTests
├── ClientTest.php
├── config.json
├── coverage.txt
├── IpnHandlerTest.php
└── Signature.php
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.