mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 14:57:26 +08:00
44 lines
959 B
JavaScript
44 lines
959 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 ) {
|
|
let reason = 'tokenization error';
|
|
|
|
if ( ! paymentComponent ) {
|
|
reason = 'initialization error';
|
|
}
|
|
|
|
return {
|
|
type: emitResponse.responseTypes.ERROR,
|
|
message: `Could not process the payment (${ reason })`,
|
|
};
|
|
}
|
|
|
|
return {
|
|
type: emitResponse.responseTypes.SUCCESS,
|
|
meta: {
|
|
paymentMethodData: {
|
|
fastlane_member: isRyanFlow,
|
|
axo_nonce: cardToken,
|
|
},
|
|
},
|
|
};
|
|
}, [ card, paymentComponent, tokenizedCustomerData ] );
|
|
};
|
|
|
|
export default useHandlePaymentSetup;
|