@@ -203,9 +203,9 @@ public function authorize(InfoInterface $payment, $amount)
203
203
$ payPalCart = $ this ->payPalCartFactory ->create (['salesModel ' => $ order ]);
204
204
$ payPalCart ->getAmounts ();
205
205
206
- $ token = $ payment -> getAdditionalInformation ( self :: PNREF ) ;
206
+ $ parentTransactionId = $ vaultPaymentToken ? $ vaultPaymentToken -> getGatewayToken () : $ zeroAmountAuthorizationId ;
207
207
$ request ->setData ('trxtype ' , self ::TRXTYPE_AUTH_ONLY );
208
- $ request ->setData ('origid ' , $ token );
208
+ $ request ->setData ('origid ' , $ parentTransactionId );
209
209
$ request ->setData ('amt ' , $ this ->formatPrice ($ amount ));
210
210
$ request ->setData ('currency ' , $ order ->getBaseCurrencyCode ());
211
211
$ request ->setData ('itemamt ' , $ this ->formatPrice ($ payPalCart ->getSubtotal ()));
@@ -226,7 +226,11 @@ public function authorize(InfoInterface $payment, $amount)
226
226
227
227
$ this ->setTransStatus ($ payment , $ response );
228
228
229
- $ this ->createPaymentToken ($ payment , $ token );
229
+ if ($ vaultPaymentToken ) {
230
+ $ payment ->setParentTransactionId ($ vaultPaymentToken ->getGatewayToken ());
231
+ } else {
232
+ $ this ->createPaymentToken ($ payment , $ zeroAmountAuthorizationId );
233
+ }
230
234
231
235
$ payment ->unsAdditionalInformation (self ::CC_DETAILS );
232
236
$ payment ->unsAdditionalInformation (self ::PNREF );
@@ -324,11 +328,19 @@ public function capture(InfoInterface $payment, $amount)
324
328
}
325
329
326
330
/** @var Payment $payment */
327
- $ token = $ payment ->getAdditionalInformation (self ::PNREF );
331
+ $ zeroAmountAuthorizationId = $ this ->getZeroAmountAuthorizationId ($ payment );
332
+ /** @var PaymentTokenInterface $vaultPaymentToken */
333
+ $ vaultPaymentToken = $ payment ->getExtensionAttributes ()->getVaultPaymentToken ();
334
+ if ($ vaultPaymentToken && empty ($ zeroAmountAuthorizationId )) {
335
+ $ payment ->setAdditionalInformation (self ::PNREF , $ vaultPaymentToken ->getGatewayToken ());
336
+ if (!$ payment ->getParentTransactionId ()) {
337
+ $ payment ->setParentTransactionId ($ vaultPaymentToken ->getGatewayToken ());
338
+ }
339
+ }
328
340
parent ::capture ($ payment , $ amount );
329
341
330
- if ($ token && ! $ payment -> getAuthorizationTransaction () ) {
331
- $ this ->createPaymentToken ($ payment , $ token );
342
+ if ($ zeroAmountAuthorizationId && $ vaultPaymentToken === null ) {
343
+ $ this ->createPaymentToken ($ payment , $ zeroAmountAuthorizationId );
332
344
}
333
345
334
346
return $ this ;
0 commit comments