"use client"; import Image from "next/image"; import { use } from "react"; import { useForm, get } from "react-hook-form"; import {RepayOrderPaymentMethodsData} from "@/types/checkout/type"; import {GraphqlRequestResult} from "@/types/graphqlFetch/type"; import { usePlaceOrder } from "@/utils/hooks/usePlaceOrder"; import PaypalButton from "../PaymentButton/PaypalButton"; import { overlayLoading } from "@/components/theme/ui/kernel/loading/api"; import { confirmDialog } from "@/components/theme/ui/kernel/confirm/api"; interface PaymentReplayResult { orderId: string; webOrderId: string; error: boolean; msg: string; } export function PaymentMethodContinueTpPay({ paymentMethodsDataPromise, defaultPaymentMethod, orderId, }: { paymentMethodsDataPromise: Promise>; defaultPaymentMethod: {method: string; methodTitle: string;} orderId: string; }) { const paymentMethodsData = use(paymentMethodsDataPromise); const paymentMethods = paymentMethodsData.data?.collectionRepayOrderPaymentMethods || []; const { paymentRepay } = usePlaceOrder(); const { register, watch, formState: { errors } } = useForm({ mode: "onChange", reValidateMode: "onChange", defaultValues:{ paymentMethod: defaultPaymentMethod.method } }); // 参考 https://github.com/react-hook-form/error-message/blob/master/src/ErrorMessage.tsx const paymentMethodError = get(errors, "paymentMethod"); const selectedPaymentMethod = watch("paymentMethod"); console.log('selectedPaymentMethod -------- ',selectedPaymentMethod); const handleCreateOrder = async () => { return await paymentRepay({ orderId: Number(orderId), paymentMethod: selectedPaymentMethod }); }; const handleClickPay = async () => { return true; }; const airwallexRepay = async () => { overlayLoading.start(); const res = await paymentRepay({ orderId: Number(orderId), paymentMethod: selectedPaymentMethod, paymentSuccessUrl: window.location.origin + '/paymentresult/result' }); console.log("airwallexPlaceOrder res ---- ", res); if(!res.error && res.orderId) { // 创建订单成功了,跳转支付页面 window.location.href = res.orderId; } else { //创建订单出错了 overlayLoading.stop(); confirmDialog({ title: "Warning", content: res.msg + " Create order failed. Please try again.", noCancel: true, }).then(() => {}); } }; return ( <>
{paymentMethodsData.error &&

{paymentMethodsData.error}

} { paymentMethods.map((item) => { return ( ) }) } {paymentMethodError &&

{paymentMethodError.message}

}

By providing your information, you agree to Wiggins'sPrivacy Policyand Terms of Use.

{selectedPaymentMethod === 'paypal_smart_button' && } {(selectedPaymentMethod === 'awxklarna' || selectedPaymentMethod === 'awxafterpay') && }
); }