BraintreeAdapter.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Model\Adapter;
  7. use Braintree\ClientToken;
  8. use Braintree\Configuration;
  9. use Braintree\CreditCard;
  10. use Braintree\PaymentMethodNonce;
  11. use Braintree\Transaction;
  12. use Magento\Braintree\Gateway\Config\Config;
  13. use Magento\Braintree\Model\Adminhtml\Source\Environment;
  14. /**
  15. * Class BraintreeAdapter
  16. * Use \Magento\Braintree\Model\Adapter\BraintreeAdapterFactory to create new instance of adapter.
  17. * @codeCoverageIgnore
  18. */
  19. class BraintreeAdapter
  20. {
  21. /**
  22. * @var Config
  23. */
  24. private $config;
  25. /**
  26. * @param string $merchantId
  27. * @param string $publicKey
  28. * @param string $privateKey
  29. * @param string $environment
  30. */
  31. public function __construct($merchantId, $publicKey, $privateKey, $environment)
  32. {
  33. $this->merchantId($merchantId);
  34. $this->publicKey($publicKey);
  35. $this->privateKey($privateKey);
  36. if ($environment === Environment::ENVIRONMENT_PRODUCTION) {
  37. $this->environment(Environment::ENVIRONMENT_PRODUCTION);
  38. } else {
  39. $this->environment(Environment::ENVIRONMENT_SANDBOX);
  40. }
  41. }
  42. /**
  43. * Initializes credentials.
  44. *
  45. * @return void
  46. * @deprecated 100.2.2 is not used anymore
  47. */
  48. protected function initCredentials()
  49. {
  50. if ($this->config->getValue(Config::KEY_ENVIRONMENT) == Environment::ENVIRONMENT_PRODUCTION) {
  51. $this->environment(Environment::ENVIRONMENT_PRODUCTION);
  52. } else {
  53. $this->environment(Environment::ENVIRONMENT_SANDBOX);
  54. }
  55. $this->merchantId($this->config->getValue(Config::KEY_MERCHANT_ID));
  56. $this->publicKey($this->config->getValue(Config::KEY_PUBLIC_KEY));
  57. $this->privateKey($this->config->getValue(Config::KEY_PRIVATE_KEY));
  58. }
  59. /**
  60. * @param string|null $value
  61. * @return mixed
  62. */
  63. public function environment($value = null)
  64. {
  65. return Configuration::environment($value);
  66. }
  67. /**
  68. * @param string|null $value
  69. * @return mixed
  70. */
  71. public function merchantId($value = null)
  72. {
  73. return Configuration::merchantId($value);
  74. }
  75. /**
  76. * @param string|null $value
  77. * @return mixed
  78. */
  79. public function publicKey($value = null)
  80. {
  81. return Configuration::publicKey($value);
  82. }
  83. /**
  84. * @param string|null $value
  85. * @return mixed
  86. */
  87. public function privateKey($value = null)
  88. {
  89. return Configuration::privateKey($value);
  90. }
  91. /**
  92. * @param array $params
  93. * @return \Braintree\Result\Successful|\Braintree\Result\Error|null
  94. */
  95. public function generate(array $params = [])
  96. {
  97. try {
  98. return ClientToken::generate($params);
  99. } catch (\Exception $e) {
  100. return null;
  101. }
  102. }
  103. /**
  104. * @param string $token
  105. * @return \Braintree\CreditCard|null
  106. */
  107. public function find($token)
  108. {
  109. try {
  110. return CreditCard::find($token);
  111. } catch (\Exception $e) {
  112. return null;
  113. }
  114. }
  115. /**
  116. * @param array $filters
  117. * @return \Braintree\ResourceCollection
  118. */
  119. public function search(array $filters)
  120. {
  121. return Transaction::search($filters);
  122. }
  123. /**
  124. * @param string $token
  125. * @return \Braintree\Result\Successful|\Braintree\Result\Error
  126. */
  127. public function createNonce($token)
  128. {
  129. return PaymentMethodNonce::create($token);
  130. }
  131. /**
  132. * @param array $attributes
  133. * @return \Braintree\Result\Successful|\Braintree\Result\Error
  134. */
  135. public function sale(array $attributes)
  136. {
  137. return Transaction::sale($attributes);
  138. }
  139. /**
  140. * @param string $transactionId
  141. * @param null|float $amount
  142. * @return \Braintree\Result\Successful|\Braintree\Result\Error
  143. */
  144. public function submitForSettlement($transactionId, $amount = null)
  145. {
  146. return Transaction::submitForSettlement($transactionId, $amount);
  147. }
  148. /**
  149. * @param string $transactionId
  150. * @return \Braintree\Result\Successful|\Braintree\Result\Error
  151. */
  152. public function void($transactionId)
  153. {
  154. return Transaction::void($transactionId);
  155. }
  156. /**
  157. * @param string $transactionId
  158. * @param null|float $amount
  159. * @return \Braintree\Result\Successful|\Braintree\Result\Error
  160. */
  161. public function refund($transactionId, $amount = null)
  162. {
  163. return Transaction::refund($transactionId, $amount);
  164. }
  165. /**
  166. * Clone original transaction
  167. * @param string $transactionId
  168. * @param array $attributes
  169. * @return mixed
  170. */
  171. public function cloneTransaction($transactionId, array $attributes)
  172. {
  173. return Transaction::cloneTransaction($transactionId, $attributes);
  174. }
  175. }