ClientInterface.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466
  1. <?php
  2. namespace AmazonPay;
  3. /* Interface class to showcase the public API methods for Amazon Pay */
  4. interface ClientInterface
  5. {
  6. /* Setter for sandbox
  7. * Sets the boolean value for config['sandbox'] variable
  8. */
  9. public function setSandbox($value);
  10. /* Setter for config['client_id']
  11. * Sets the value for config['client_id'] variable
  12. */
  13. public function setClientId($value);
  14. /* Setter for config['app_id']
  15. * Sets the value for config['app_id'] variable
  16. */
  17. public function setAppId($value);
  18. /* Setter for Proxy
  19. * input $proxy [array]
  20. * @param $proxy['proxy_user_host'] - hostname for the proxy
  21. * @param $proxy['proxy_user_port'] - hostname for the proxy
  22. * @param $proxy['proxy_user_name'] - if your proxy required a username
  23. * @param $proxy['proxy_user_password'] - if your proxy required a passowrd
  24. */
  25. public function setProxy($proxy);
  26. /* Setter for $_mwsServiceUrl
  27. * Set the URL to which the post request has to be made for unit testing
  28. */
  29. public function setMwsServiceUrl($url);
  30. /* Getter
  31. * Gets the value for the key if the key exists in config
  32. */
  33. public function __get($name);
  34. /* Getter for parameters string
  35. * Gets the value for the parameters string for unit testing
  36. */
  37. public function getParameters();
  38. /* GetUserInfo convenience funtion - Returns user's profile information from Amazon using the access token returned by the Button widget.
  39. *
  40. * @param $access_token [String]
  41. */
  42. public function getUserInfo($access_token);
  43. /* GetMerchantAccountStatus API call - Returns the status of the Merchant Account.
  44. * @see TODO
  45. * @param requestParameters['merchant_id'] - [String]
  46. * @optional requestParameters['mws_auth_token'] - [String]
  47. */
  48. public function getMerchantAccountStatus($requestParameters = array());
  49. /* GetOrderReferenceDetails API call - Returns details about the Order Reference object and its current state.
  50. * @see https://pay.amazon.com/developer/documentation/apireference/201751970
  51. *
  52. * @param requestParameters['merchant_id'] - [String]
  53. * @param requestParameters['amazon_order_reference_id'] - [String]
  54. * @optional requestParameters['address_consent_token'] - [String]
  55. * @optional requestParameters['mws_auth_token'] - [String]
  56. */
  57. public function getOrderReferenceDetails($requestParameters = array());
  58. /* ListOrderReference API call - Returns details about the Order Reference object and its current state from the sellers.
  59. * @see https://pay.amazon.com/developer/documentation/apireference/201751970
  60. *
  61. * @param requestParameters['merchant_id'] - [String]
  62. * @param requestParameters['query_id'] - [String]
  63. * @param requestParameters['query_id_type'] - [String] (SellerOrderId)
  64. * @optional requestParameters['page_size'] - [Int]
  65. * @optional requestParameters['created_start_time'] - [String] (Date/Time ISO8601)
  66. * @optional requestParameters['created_end_time'] - [String] (Date/Time ISO8601) Limited to 31 days
  67. * @optional requestParameters['sort_order'] - [String] (Ascending/Descending)
  68. * @optional requestParameters['mws_auth_token'] - [String]
  69. * @optional requestParameters['status_list'] - [Array]
  70. */
  71. public function listOrderReference($requestParameters = array());
  72. /* ListOrderReferenceByNextToken API call - Returns details about the Order Reference object and its current
  73. * state from the sellers.
  74. * @see https://pay.amazon.com/developer/documentation/apireference/201751970
  75. *
  76. * @param requestParameters['merchant_id'] - [String]
  77. * @param requestParameters['next_token'] - [String]
  78. * @optional requestParameters['mws_auth_token'] - [String]
  79. */
  80. public function listOrderReferenceByNextToken($requestParameters = array());
  81. /* SetOrderReferenceDetails API call - Sets order reference details such as the order total and a description for the order.
  82. * @see https://pay.amazon.com/developer/documentation/apireference/201751960
  83. *
  84. * @param requestParameters['merchant_id'] - [String]
  85. * @param requestParameters['amazon_order_reference_id'] - [String]
  86. * @param requestParameters['amount'] - [String]
  87. * @param requestParameters['currency_code'] - [String]
  88. * @optional requestParameters['platform_id'] - [String]
  89. * @optional requestParameters['seller_note'] - [String]
  90. * @optional requestParameters['seller_order_id'] - [String]
  91. * @optional requestParameters['store_name'] - [String]
  92. * @optional requestParameters['supplementary_data'] - [String]
  93. * @optional requestParameters['custom_information'] - [String]
  94. * @optional requestParameters['request_payment_authorization'] - [Boolean]
  95. * @optional requestParameters['mws_auth_token'] - [String]
  96. */
  97. public function setOrderReferenceDetails($requestParameters = array());
  98. /* SetOrderAttributes API call - Sets order reference attributes such as the order total and a description for the order.
  99. * Works same as SetOrderReferenceDetails, but includes additional PSP-related attributes and can also be called after
  100. * the ORO has been confirmed. Only some values can be changed the ORO has been confirmed. See API documentation.
  101. *
  102. * @param requestParameters['merchant_id'] - [String]
  103. * @param requestParameters['amazon_order_reference_id'] - [String]
  104. * @optional requestParameters['amount'] - [String]
  105. * @optional requestParameters['currency_code'] - [String]
  106. * @optional requestParameters['platform_id'] - [String]
  107. * @optional requestParameters['seller_note'] - [String]
  108. * @optional requestParameters['seller_order_id'] - [String]
  109. * @optional requestParameters['store_name'] - [String]
  110. * @optional requestParameters['custom_information'] - [String]
  111. * @optional requestParameters['supplementary_data'] - [String]
  112. * @optional requestParameters['request_payment_authorization'] - [Boolean]
  113. * @optional requestParameters['payment_service_provider_id'] - [String]
  114. * @optional requestParameters['payment_service_provider_order_id'] - [String]
  115. * @optional requestParameters['order_item_categories'] - [array()]
  116. * @optional requestParameters['mws_auth_token'] - [String]
  117. */
  118. public function setOrderAttributes($requestParameters = array());
  119. /* ConfirmOrderReferenceDetails API call - Confirms that the order reference is free of constraints and all required information has been set on the order reference.
  120. * @see https://pay.amazon.com/developer/documentation/apireference/201751980
  121. *
  122. * @param requestParameters['merchant_id'] - [String]
  123. * @param requestParameters['amazon_order_reference_id'] - [String]
  124. * @optional requestParameters['success_url'] - [String]
  125. * @optional requestParameters['failure_url'] - [String]
  126. * @optional requestParameters['authorization_amount'] - [String]
  127. * @optional requestParameters['currency_code'] - [String]
  128. * @optional requestParameters['mws_auth_token'] - [String]
  129. */
  130. public function confirmOrderReference($requestParameters = array());
  131. /* CancelOrderReferenceDetails API call - Cancels a previously confirmed order reference.
  132. * @see https://pay.amazon.com/developer/documentation/apireference/201751990
  133. *
  134. * @param requestParameters['merchant_id'] - [String]
  135. * @param requestParameters['amazon_order_reference_id'] - [String]
  136. * @optional requestParameters['cancelation_reason'] [String]
  137. * @optional requestParameters['mws_auth_token'] - [String]
  138. */
  139. public function cancelOrderReference($requestParameters = array());
  140. /* CloseOrderReference API call - Confirms that an order reference has been fulfilled (fully or partially)
  141. * and that you do not expect to create any new authorizations on this order reference.
  142. * @see https://pay.amazon.com/developer/documentation/apireference/201752000
  143. *
  144. * @param requestParameters['merchant_id'] - [String]
  145. * @param requestParameters['amazon_order_reference_id'] - [String]
  146. * @optional requestParameters['closure_reason'] [String]
  147. * @optional requestParameters['mws_auth_token'] - [String]
  148. */
  149. public function closeOrderReference($requestParameters = array());
  150. /* CloseAuthorization API call - Closes an authorization.
  151. * @see https://pay.amazon.com/developer/documentation/apireference/201752070
  152. *
  153. * @param requestParameters['merchant_id'] - [String]
  154. * @param requestParameters['amazon_authorization_id'] - [String]
  155. * @optional requestParameters['closure_reason'] [String]
  156. * @optional requestParameters['mws_auth_token'] - [String]
  157. */
  158. public function closeAuthorization($requestParameters = array());
  159. /* Authorize API call - Reserves a specified amount against the payment method(s) stored in the order reference.
  160. * @see https://pay.amazon.com/developer/documentation/apireference/201752010
  161. *
  162. * @param requestParameters['merchant_id'] - [String]
  163. * @param requestParameters['amazon_order_reference_id'] - [String]
  164. * @param requestParameters['authorization_amount'] [String]
  165. * @param requestParameters['currency_code'] - [String]
  166. * @param requestParameters['authorization_reference_id'] [String]
  167. * @optional requestParameters['capture_now'] [String]
  168. * @optional requestParameters['provider_credit_details'] - [array (array())]
  169. * @optional requestParameters['seller_authorization_note'] [String]
  170. * @optional requestParameters['transaction_timeout'] [String] - Defaults to 1440 minutes
  171. * @optional requestParameters['soft_descriptor'] - [String]
  172. * @optional requestParameters['mws_auth_token'] - [String]
  173. */
  174. public function authorize($requestParameters = array());
  175. /* GetAuthorizationDetails API call - Returns the status of a particular authorization and the total amount captured on the authorization.
  176. * @see https://pay.amazon.com/developer/documentation/apireference/201752030
  177. *
  178. * @param requestParameters['merchant_id'] - [String]
  179. * @param requestParameters['amazon_authorization_id'] [String]
  180. * @optional requestParameters['mws_auth_token'] - [String]
  181. */
  182. public function getAuthorizationDetails($requestParameters = array());
  183. /* Capture API call - Captures funds from an authorized payment instrument.
  184. * @see https://pay.amazon.com/developer/documentation/apireference/201752040
  185. *
  186. * @param requestParameters['merchant_id'] - [String]
  187. * @param requestParameters['amazon_authorization_id'] - [String]
  188. * @param requestParameters['capture_amount'] - [String]
  189. * @param requestParameters['currency_code'] - [String]
  190. * @param requestParameters['capture_reference_id'] - [String]
  191. * @optional requestParameters['provider_credit_details'] - [array (array())]
  192. * @optional requestParameters['seller_capture_note'] - [String]
  193. * @optional requestParameters['soft_descriptor'] - [String]
  194. * @optional requestParameters['mws_auth_token'] - [String]
  195. */
  196. public function capture($requestParameters = array());
  197. /* GetCaptureDetails API call - Returns the status of a particular capture and the total amount refunded on the capture.
  198. * @see https://pay.amazon.com/developer/documentation/apireference/201752060
  199. *
  200. * @param requestParameters['merchant_id'] - [String]
  201. * @param requestParameters['amazon_capture_id'] - [String]
  202. * @optional requestParameters['mws_auth_token'] - [String]
  203. */
  204. public function getCaptureDetails($requestParameters = array());
  205. /* Refund API call - Refunds a previously captured amount.
  206. * @see https://pay.amazon.com/developer/documentation/apireference/201752080
  207. *
  208. * @param requestParameters['merchant_id'] - [String]
  209. * @param requestParameters['amazon_capture_id'] - [String]
  210. * @param requestParameters['refund_reference_id'] - [String]
  211. * @param requestParameters['refund_amount'] - [String]
  212. * @param requestParameters['currency_code'] - [String]
  213. * @optional requestParameters['provider_credit_reversal_details'] - [array(array())]
  214. * @optional requestParameters['seller_refund_note'] [String]
  215. * @optional requestParameters['soft_descriptor'] - [String]
  216. * @optional requestParameters['mws_auth_token'] - [String]
  217. */
  218. public function refund($requestParameters = array());
  219. /* GetRefundDetails API call - Returns the status of a particular refund.
  220. * @see https://pay.amazon.com/developer/documentation/apireference/201752100
  221. *
  222. * @param requestParameters['merchant_id'] - [String]
  223. * @param requestParameters['amazon_refund_id'] - [String]
  224. * @optional requestParameters['mws_auth_token'] - [String]
  225. */
  226. public function getRefundDetails($requestParameters = array());
  227. /* GetServiceStatus API Call - Returns the operational status of the OffAmazonPayments API section
  228. * @see https://pay.amazon.com/developer/documentation/apireference/201752110
  229. *
  230. * The GetServiceStatus operation returns the operational status of the OffAmazonPayments API
  231. * section of Amazon Marketplace Web Service (Amazon MWS).
  232. * Status values are GREEN, GREEN_I, YELLOW, and RED.
  233. *
  234. * @param requestParameters['merchant_id'] - [String]
  235. * @optional requestParameters['mws_auth_token'] - [String]
  236. */
  237. public function getServiceStatus($requestParameters = array());
  238. /* CreateOrderReferenceForId API Call - Creates an order reference for the given object
  239. * @see https://pay.amazon.com/developer/documentation/apireference/201751670
  240. *
  241. * @param requestParameters['merchant_id'] - [String]
  242. * @param requestParameters['id'] - [String]
  243. * @optional requestParameters['inherit_shipping_address'] [Boolean]
  244. * @optional requestParameters['confirm_now'] - [Boolean]
  245. * @optional Amount (required when confirm_now is set to true) [String]
  246. * @optional requestParameters['currency_code'] - [String]
  247. * @optional requestParameters['seller_note'] - [String]
  248. * @optional requestParameters['seller_order_id'] - [String]
  249. * @optional requestParameters['store_name'] - [String]
  250. * @optional requestParameters['custom_information'] - [String]
  251. * @optional requestParameters['mws_auth_token'] - [String]
  252. */
  253. public function createOrderReferenceForId($requestParameters = array());
  254. /* GetBillingAgreementDetails API Call - Returns details about the Billing Agreement object and its current state.
  255. * @see https://pay.amazon.com/developer/documentation/apireference/201751690
  256. *
  257. * @param requestParameters['merchant_id'] - [String]
  258. * @param requestParameters['amazon_billing_agreement_id'] - [String]
  259. * @optional requestParameters['mws_auth_token'] - [String]
  260. */
  261. public function getBillingAgreementDetails($requestParameters = array());
  262. /* SetBillingAgreementDetails API call - Sets Billing Agreement details such as a description of the agreement and other information about the seller.
  263. * @see https://pay.amazon.com/developer/documentation/apireference/201751700
  264. *
  265. * @param requestParameters['merchant_id'] - [String]
  266. * @param requestParameters['amazon_billing_agreement_id'] - [String]
  267. * @param requestParameters['amount'] - [String]
  268. * @param requestParameters['currency_code'] - [String]
  269. * @optional requestParameters['platform_id'] - [String]
  270. * @optional requestParameters['seller_note'] - [String]
  271. * @optional requestParameters['seller_billing_agreement_id'] - [String]
  272. * @optional requestParameters['store_name'] - [String]
  273. * @optional requestParameters['custom_information'] - [String]
  274. * @optional requestParameters['billing_agreement_type'] - [String] either 'CustomerInitiatedTransaction' or 'MerchantInitiatedTransaction'
  275. * @optional requestParameters['subscription_amount'] - [String]
  276. * @optional requestParameters['currency_code'] - [String]
  277. * @optional requestParameters['mws_auth_token'] - [String]
  278. */
  279. public function setBillingAgreementDetails($requestParameters = array());
  280. /* ConfirmBillingAgreement API Call - Confirms that the Billing Agreement is free of constraints and all required information has been set on the Billing Agreement.
  281. * @see https://pay.amazon.com/developer/documentation/apireference/201751710
  282. *
  283. * @param requestParameters['merchant_id'] - [String]
  284. * @param requestParameters['amazon_billing_agreement_id'] - [String]
  285. * @optional requestParameters['success_url'] - [String]
  286. * @optional requestParameters['failure_url'] - [String]
  287. * @optional requestParameters['mws_auth_token'] - [String]
  288. */
  289. public function confirmBillingAgreement($requestParameters = array());
  290. /* ValidateBillingAgreement API Call - Validates the status of the Billing Agreement object and the payment method associated with it.
  291. * @see https://pay.amazon.com/developer/documentation/apireference/201751720
  292. *
  293. * @param requestParameters['merchant_id'] - [String]
  294. * @param requestParameters['amazon_billing_agreement_id'] - [String]
  295. * @optional requestParameters['mws_auth_token'] - [String]
  296. */
  297. public function validateBillingAgreement($requestParameters = array());
  298. /* AuthorizeOnBillingAgreement API call - Reserves a specified amount against the payment method(s) stored in the Billing Agreement.
  299. * @see https://pay.amazon.com/developer/documentation/apireference/201751940
  300. *
  301. * @param requestParameters['merchant_id'] - [String]
  302. * @param requestParameters['amazon_billing_agreement_id'] - [String]
  303. * @param requestParameters['authorization_reference_id'] [String]
  304. * @param requestParameters['authorization_amount'] [String]
  305. * @param requestParameters['currency_code'] - [String]
  306. * @optional requestParameters['seller_authorization_note'] [String]
  307. * @optional requestParameters['transaction_timeout'] - Defaults to 1440 minutes
  308. * @optional requestParameters['capture_now'] [String]
  309. * @optional requestParameters['soft_descriptor'] - - [String]
  310. * @optional requestParameters['seller_note'] - [String]
  311. * @optional requestParameters['platform_id'] - [String]
  312. * @optional requestParameters['custom_information'] - [String]
  313. * @optional requestParameters['seller_order_id'] - [String]
  314. * @optional requestParameters['store_name'] - [String]
  315. * @optional requestParameters['inherit_shipping_address'] [Boolean] - Defaults to true
  316. * @optional requestParameters['mws_auth_token'] - [String]
  317. */
  318. public function authorizeOnBillingAgreement($requestParameters = array());
  319. /* CloseBillingAgreement API Call - Returns details about the Billing Agreement object and its current state.
  320. * @see https://pay.amazon.com/developer/documentation/apireference/201751950
  321. *
  322. * @param requestParameters['merchant_id'] - [String]
  323. * @param requestParameters['amazon_billing_agreement_id'] - [String]
  324. * @optional requestParameters['closure_reason'] [String]
  325. * @optional requestParameters['mws_auth_token'] - [String]
  326. */
  327. public function closeBillingAgreement($requestParameters = array());
  328. /* GetMerchantNotificationConfiguration API Call - Returns details about the defined IPN endpoints
  329. *
  330. * @param requestParameters['merchant_id'] - [String]
  331. * @optional requestParameters['mws_auth_token'] - [String]
  332. */
  333. public function getMerchantNotificationConfiguration($requestParameters = array());
  334. /* SetMerchantNotificationConfiguration API Call - Set IPN endpoints
  335. *
  336. * @param requestParameters['merchant_id'] - [String]
  337. * @param requestParameters['notification_configuration_list'] - [Array]
  338. * @optional requestParameters['mws_auth_token'] - [String]
  339. */
  340. public function setMerchantNotificationConfiguration($requestParameters = array());
  341. /* charge convenience method
  342. * Performs the API calls
  343. * 1. SetOrderReferenceDetails / SetBillingAgreementDetails
  344. * 2. ConfirmOrderReference / ConfirmBillingAgreement
  345. * 3. Authorize (with Capture) / AuthorizeOnBillingAgreeemnt (with Capture)
  346. *
  347. * @param requestParameters['merchant_id'] - [String]
  348. *
  349. * @param requestParameters['amazon_reference_id'] - [String] : Order Reference ID /Billing Agreement ID
  350. * If requestParameters['amazon_reference_id'] is empty then the following is required,
  351. * @param requestParameters['amazon_order_reference_id'] - [String] : Order Reference ID
  352. * or,
  353. * @param requestParameters['amazon_billing_agreement_id'] - [String] : Billing Agreement ID
  354. *
  355. * @param $requestParameters['charge_amount'] - [String] : Amount value to be captured
  356. * @param requestParameters['currency_code'] - [String] : Currency Code for the Amount
  357. * @param requestParameters['authorization_reference_id'] - [String]- Any unique string that needs to be passed
  358. * @optional requestParameters['charge_note'] - [String] : Seller Note sent to the buyer
  359. * @optional requestParameters['transaction_timeout'] - [String] : Defaults to 1440 minutes
  360. * @optional requestParameters['charge_order_id'] - [String] : Custom Order ID provided
  361. * @optional requestParameters['mws_auth_token'] - [String]
  362. */
  363. public function charge($requestParameters = array());
  364. /* GetProviderCreditDetails API Call - Get the details of the Provider Credit.
  365. *
  366. * @param requestParameters['merchant_id'] - [String]
  367. * @param requestParameters['amazon_provider_credit_id'] - [String]
  368. * @optional requestParameters['mws_auth_token'] - [String]
  369. */
  370. public function getProviderCreditDetails($requestParameters = array());
  371. /* GetProviderCreditReversalDetails API Call - Get details of the Provider Credit Reversal.
  372. *
  373. * @param requestParameters['merchant_id'] - [String]
  374. * @param requestParameters['amazon_provider_credit_reversal_id'] - [String]
  375. * @optional requestParameters['mws_auth_token'] - [String]
  376. */
  377. public function getProviderCreditReversalDetails($requestParameters = array());
  378. /* ReverseProviderCredit API Call - Reverse the Provider Credit.
  379. *
  380. * @param requestParameters['merchant_id'] - [String]
  381. * @param requestParameters['amazon_provider_credit_id'] - [String]
  382. * @optional requestParameters['credit_reversal_reference_id'] - [String]
  383. * @param requestParameters['credit_reversal_amount'] - [String]
  384. * @optional requestParameters['currency_code'] - [String]
  385. * @optional requestParameters['credit_reversal_note'] - [String]
  386. * @optional requestParameters['mws_auth_token'] - [String]
  387. */
  388. public function reverseProviderCredit($requestParameters = array());
  389. }