diff --git a/Gateway/Response/ApplePay/VaultDetailsHandler.php b/Gateway/Response/ApplePay/VaultDetailsHandler.php
new file mode 100755
index 0000000..1db8ab1
--- /dev/null
+++ b/Gateway/Response/ApplePay/VaultDetailsHandler.php
@@ -0,0 +1,63 @@
+subjectReader->readPayment($handlingSubject);
+ $transaction = $this->subjectReader->readTransaction($response);
+ $payment = $paymentDO->getPayment();
+
+ // add vault payment token entity to extension attributes
+ $paymentToken = $this->getVaultPaymentToken($transaction);
+ if (null !== $paymentToken) {
+ $extensionAttributes = $this->getExtensionAttributes($payment);
+ $extensionAttributes->setVaultPaymentToken($paymentToken);
+ }
+ }
+
+ /**
+ * Get vault payment token entity
+ *
+ * @param Transaction $transaction
+ * @return PaymentTokenInterface|null
+ * @throws InputException
+ * @throws NoSuchEntityException
+ */
+ protected function getVaultPaymentToken(Transaction $transaction)
+ {
+ // Check token existing in gateway response
+ $token = $transaction->creditCardDetails->token;
+ if (empty($token)) {
+ return null;
+ }
+
+ /** @var PaymentTokenInterface $paymentToken */
+ $paymentToken = $this->paymentTokenFactory->create();
+ $paymentToken->setGatewayToken($token);
+
+
+ return $paymentToken;
+ }
+}
diff --git a/etc/config.xml b/etc/config.xml
index 318de38..12daff1 100644
--- a/etc/config.xml
+++ b/etc/config.xml
@@ -176,7 +176,7 @@
1
1
1
- 0
+ 1
1
1
1
diff --git a/etc/di.xml b/etc/di.xml
index a84eab9..970f451 100755
--- a/etc/di.xml
+++ b/etc/di.xml
@@ -661,6 +661,7 @@
- BraintreeApplePayAuthorizeCommand
- BraintreeApplePaySaleCommand
- BraintreeApplePayCaptureStrategyCommand
+ - BraintreeVaultCaptureCommand
- BraintreeCaptureCommand
- BraintreeVoidCommand
- BraintreeRefundCommand
@@ -686,12 +687,19 @@
Magento\Braintree\Gateway\Validator\ResponseValidator
+
+
+
+ Magento\Vault\Model\CreditCardTokenFactory
+
+
- Magento\Braintree\Model\ApplePay\PaymentDetailsHandler
- Magento\Braintree\Gateway\Response\CardDetailsHandler
- Magento\Braintree\Gateway\Response\TransactionIdHandler
+ - Magento\Braintree\Gateway\Response\ApplePay\VaultDetailsHandler
@@ -701,6 +709,7 @@
- Magento\Braintree\Gateway\Request\CustomerDataBuilder
- Magento\Braintree\Gateway\Request\PaymentDataBuilder
- Magento\Braintree\Gateway\Request\ChannelDataBuilder
+ - Magento\Braintree\Gateway\Request\VaultDataBuilder
- Magento\Braintree\Gateway\Request\AddressDataBuilder
- Magento\Braintree\Gateway\Request\DescriptorDataBuilder
- Magento\Braintree\Gateway\Request\Level23ProcessingDataBuilder