mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 18:16:38 +08:00
43 lines
861 B
JavaScript
43 lines
861 B
JavaScript
|
import { useCallback } from '@wordpress/element';
|
||
|
|
||
|
const useHandlePaymentSetup = (
|
||
|
emitResponse,
|
||
|
card,
|
||
|
paymentComponent,
|
||
|
tokenizedCustomerData
|
||
|
) => {
|
||
|
return useCallback( async () => {
|
||
|
const isRyanFlow = !! card?.id;
|
||
|
let cardToken = card?.id;
|
||
|
|
||
|
if ( ! cardToken && paymentComponent ) {
|
||
|
cardToken = await paymentComponent
|
||
|
.getPaymentToken( tokenizedCustomerData )
|
||
|
.then( ( response ) => response.id );
|
||
|
}
|
||
|
|
||
|
if ( ! cardToken ) {
|
||
|
return {
|
||
|
type: emitResponse.responseTypes.ERROR,
|
||
|
message: 'Could not process the payment (tokenization error)',
|
||
|
};
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
type: emitResponse.responseTypes.SUCCESS,
|
||
|
meta: {
|
||
|
paymentMethodData: {
|
||
|
fastlane_member: isRyanFlow,
|
||
|
axo_nonce: cardToken,
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
}, [
|
||
|
card,
|
||
|
paymentComponent,
|
||
|
tokenizedCustomerData,
|
||
|
] );
|
||
|
};
|
||
|
|
||
|
export default useHandlePaymentSetup;
|