SettlementClient.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License").
  6. * You may not use this file except in compliance with the License.
  7. * A copy of the License is located at
  8. *
  9. * http://aws.amazon.com/apache2.0
  10. *
  11. * or in the "license" file accompanying this file. This file is distributed
  12. * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  13. * express or implied. See the License for the specific language governing
  14. * permissions and limitations under the License.
  15. */
  16. namespace Amazon\Payment\Gateway\Http\Client;
  17. /**
  18. * Class SettlementClient
  19. * Amazon Pay capture client
  20. */
  21. class SettlementClient extends AbstractClient
  22. {
  23. /**
  24. * @inheritdoc
  25. */
  26. protected function process(array $data)
  27. {
  28. $response = [];
  29. // check to see if authorization is still valid
  30. if ($this->adapter->checkAuthorizationStatus($data)) {
  31. $captureData = [
  32. 'amazon_authorization_id' => $data['amazon_authorization_id'],
  33. 'capture_amount' => $data['capture_amount'],
  34. 'currency_code' => $data['currency_code'],
  35. 'capture_reference_id' => $data['amazon_order_reference_id'] . '-C' . time()
  36. ];
  37. $response = $this->adapter->completeCapture($captureData, $data['store_id']);
  38. } else {
  39. // if invalid - reauthorize and capture
  40. $captureData = [
  41. 'amazon_order_reference_id' => $data['amazon_order_reference_id'],
  42. 'amount' => $data['capture_amount'],
  43. 'currency_code' => $data['currency_code'],
  44. 'store_name' => $data['store_name'],
  45. 'custom_information' => $data['custom_information'],
  46. 'platform_id' => $data['platform_id']
  47. ];
  48. $response = $this->adapter->authorize($data, true);
  49. $response['reauthorized'] = true;
  50. }
  51. return $response;
  52. }
  53. }