Browse Source

订单详情使用订单里的货币码(因为订单详情里的金额是下单时候用户选的货币对应的金额,不是当前货币对应的金额)

fogwind 5 days ago
parent
commit
4c444a7296

+ 12 - 8
src/app/(checkout)/checkout/_components/ContinueToPay/ContinueToPayOrderInfo.tsx

@@ -20,9 +20,13 @@ export default function ContinueToPayOrderInfo({
 }) { 
     
     const router = useRouter();
-    const {getCurrentCurrencyItem} = useConfig();
+    const {currencies,getCurrentCurrencyItem} = useConfig();
     const currentCurrency = getCurrentCurrencyItem();
     const currencySymbol = currentCurrency.symbol;
+    const orderCurrency = currencies.find(item => item.code === orderDetail.orderCurrencyCode) || null;
+    const orderSymbol = orderCurrency?.symbol || currencySymbol;
+    
+    
     
     const [productsModalOpen, setProductsModalOpen] = useState(false);
 
@@ -158,23 +162,23 @@ export default function ContinueToPayOrderInfo({
                 <h3 className="text-ly-24 font-medium">Promotion Details</h3>
                 <div className="flex justify-between mt-3 first:mt-0">
                     <p className="text-ly-12 leading-ly-20">Subtotal</p>
-                    <p className="text-ly-12 leading-ly-20">{currencySymbol}{orderDetail.subTotal}</p>
+                    <p className="text-ly-12 leading-ly-20">{orderSymbol}{orderDetail.subTotal}</p>
                 </div>
                 <div className="flex justify-between mt-3 first:mt-0">
                     <p className="text-ly-12 leading-ly-20">Shipping</p>
-                    <p className="text-ly-12 leading-ly-20">{currencySymbol}{orderDetail.shippingAmount}</p>
+                    <p className="text-ly-12 leading-ly-20">{orderSymbol}{orderDetail.shippingAmount}</p>
                 </div>
                 <div className="flex justify-between mt-3 first:mt-0">
                     <p className="text-ly-12 leading-ly-20">Tax</p>
-                    <p className="text-ly-12 leading-ly-20">{currencySymbol}{orderDetail.taxAmount}</p>
+                    <p className="text-ly-12 leading-ly-20">{orderSymbol}{orderDetail.taxAmount}</p>
                 </div>
                 <div className="flex justify-between mt-3 first:mt-0">
                     <p className="text-ly-12 leading-ly-20">Discount</p>
-                    <p className="text-ly-12 leading-ly-20">{currencySymbol}{orderDetail.discountAmount}</p>
+                    <p className="text-ly-12 leading-ly-20">{orderSymbol}{orderDetail.discountAmount}</p>
                 </div>
                 <div className="flex justify-between mt-3 first:mt-0">
                     <p className="text-ly-12 leading-ly-20">Gift Card</p>
-                    <p className="text-ly-12 leading-ly-20">-{currencySymbol}{orderDetail.giftcardAmount}</p>
+                    <p className="text-ly-12 leading-ly-20">-{orderSymbol}{orderDetail.giftcardAmount}</p>
                 </div>
                 {/* <div className="flex justify-between mt-3 first:mt-0">
                     <p className="text-ly-12 leading-ly-20">You Earn</p>
@@ -182,7 +186,7 @@ export default function ContinueToPayOrderInfo({
                 </div> */}
                 <div className="flex justify-between mt-3 first:mt-0">
                     <p className="text-ly-16 leading-ly-24">Total</p>
-                    <p className="text-ly-16 leading-ly-24 font-bold">{currencySymbol}{orderDetail.grandTotal}</p>
+                    <p className="text-ly-16 leading-ly-24 font-bold">{orderSymbol}{orderDetail.grandTotal}</p>
                 </div>
             </div>
 
@@ -191,7 +195,7 @@ export default function ContinueToPayOrderInfo({
             <ProductsModalPendingOrder 
                 isOpen={productsModalOpen}
                 products={productItems}
-                currencySymbol={currencySymbol}
+                currencySymbol={orderSymbol}
                 onClose={() => closeProductsModal()}
             />
         </>

+ 8 - 5
src/app/(checkout)/checkout/_components/ContinueToPay/PaymentMethodContinueTpPay.tsx

@@ -41,9 +41,12 @@ export function PaymentMethodContinueTpPay({
     const { paymentRepay, createPaymentCallback } = usePlaceOrder();
 
     const {loadSdk} = usePaymentSDKContext();
-    const {store} = useConfig();
+    const {store,currencies} = useConfig();
     const currentCurrencyCode  = store.currentCurrency;
 
+    const orderCurrency = currencies.find(item => item.code === orderDetail.orderCurrencyCode) || null;
+    const orderCurrencyCode = orderCurrency?.code || currentCurrencyCode;
+
     const {airwallexCardState,getCardElements} = useAirwallexCard(true,{
         cardNumber: 'airwallex_cardNumber', 
         cvc: 'airwallex_cvc', 
@@ -223,13 +226,13 @@ export function PaymentMethodContinueTpPay({
                 const afterpayToken = res.data.gatewayOrderId;
                 const webOrderId = res.data.orderId;
                 let countryCode = "US";
-                if(currentCurrencyCode === "CAD") {
+                if(orderCurrencyCode === "CAD") {
                     countryCode = "CA";
-                } else if(currentCurrencyCode === "AUD") {
+                } else if(orderCurrencyCode === "AUD") {
                     countryCode = "AU";
-                } else if(currentCurrencyCode === "NZD") {
+                } else if(orderCurrencyCode === "NZD") {
                     countryCode = "NZ";
-                } else if(currentCurrencyCode === "GBP") {
+                } else if(orderCurrencyCode === "GBP") {
                     countryCode = "GB";
                 }
                 window.AfterPay.initialize({countryCode: countryCode});

+ 1 - 4
src/app/(checkout)/checkout/_components/PaymentButton/PaypalApplepayButton.tsx

@@ -231,10 +231,7 @@ export default function PaypalApplepayButton({
 
     const tips = isLoading || !isHydrated  ? (
             <p className="text-ly-12 text-center">
-                Applepay is loading1...
-                {String(isLoading)}
-
-                /{String(isHydrated)}
+                Applepay is loading...
             </p>
         ) : eligibilityError ? (
             <p className="text-ly-errorcolor text-ly-12 text-center">

+ 1 - 1
src/app/(public)/paymentresult/_components/OrderDetailWrapper.tsx

@@ -52,7 +52,7 @@ export default function OrderDetailWrapper({
     const productItems = orderDetailRes?.items?.edges.map(item => {
         return item.node;
     }) || [];
-    const currency = currencies?.find(item => item.code === orderDetailRes?.orderCurrencyCode) || null;
+    const currency = currencies.find(item => item.code === orderDetailRes?.orderCurrencyCode) || null;
 
     useEffect(() => {
         // 如果是游客且支付成功,删除cookie里的GUEST_CART_TOKEN GUEST_CART_ID