2011-08-09 32 views
7

有一個電子商務網站運行ZNode。我們發送稅金,運費,訂單總額等。一切正常,直到應用訂單級折扣(比如50%)。我們收到PayPal的回覆,內容如下:Paypal快速結帳:申請訂單折扣

購物車項目金額的總計與訂單金額不匹配。

我正在遍歷API,並且找不到任何要應用訂單級折扣的內容。 FWIW,用戶在我們的網站上使用優惠碼,然後轉移到PayPal。

回答

18

我認爲你的問題不是PayPal API。 你檢查了一切正常與你的參數傳遞給貝寶在這個50%的折扣情況下完美嗎?

在PayPal文檔之後,您應該提供一個負值以反映訂單的折扣。所以一切都加起來總數。

來源:https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECCustomizing

更新的代碼(由尼克)

我有一個貝寶服務,做​​各種東西,但下面的代碼應該給你一個折扣如何工作的想法。折扣並不是一種特殊類型,它與其他任何產品一樣,除了通過將折扣命名爲折扣並將其價格設置爲負數來僞裝外。

  List<PaymentDetailsItemType> items = paymentDetails.PaymentDetailsItem; 

     foreach (ShoppingCartItem item in cart.ShoppingCartItems) 
     { 
      items.Add(new PaymentDetailsItemType 
          { 
           Name = item.Book.Title, 
           Quantity = item.Quantity, 
           Number = item.BookId.ToString(), 
           Amount = 
            new BasicAmountType 
             {currencyID = CurrencyCodeType.USD, 
             value = (item.Book.Price).To2Places()} 
          }); 
     } 
     if (cartTotals.Discount > 0) 
     { 
      items.Add(new PaymentDetailsItemType 
          { 
           Name = "Promo Code Discount", 
           Quantity = 1, 
           Number = "PromoCode", 
           Amount = 
            new BasicAmountType 
             { 
              currencyID = CurrencyCodeType.USD, 
              value = (cartTotals.Discount*-1).To2Places() 
             } 
          }); 
     } 
+0

我已經設置了TaxTotal,ShippingTotal,ItemTotal和OrderTotal。除了設置折扣碼之外,所有這些工作都是有效的,因爲OrderTotal有一定量的金額,因此物料+運費+稅金不會累加到OrderTotal。我找不到可以設置折扣金額的地方。有任何想法嗎? – StephenPAdams

+0

@look已更新回答 – Skomski

+4

您是否在說我需要創建一個項目並將其值設置爲負數?然後更新ItemTotal以反映所有項目以及我爲增加折扣而添加的負項目? – StephenPAdams

1

爲通過貝寶API發送折扣使用PAYMENTREQUEST_n_SHIPDISCAMT

這實際上是一個航運折扣,但工作得很好,而且是一條線的另一種選擇。

但它確實說在PalPal結束時的運費折扣。