有一個電子商務網站運行ZNode。我們發送稅金,運費,訂單總額等。一切正常,直到應用訂單級折扣(比如50%)。我們收到PayPal的回覆,內容如下:Paypal快速結帳:申請訂單折扣
購物車項目金額的總計與訂單金額不匹配。
我正在遍歷API,並且找不到任何要應用訂單級折扣的內容。 FWIW,用戶在我們的網站上使用優惠碼,然後轉移到PayPal。
有一個電子商務網站運行ZNode。我們發送稅金,運費,訂單總額等。一切正常,直到應用訂單級折扣(比如50%)。我們收到PayPal的回覆,內容如下:Paypal快速結帳:申請訂單折扣
購物車項目金額的總計與訂單金額不匹配。
我正在遍歷API,並且找不到任何要應用訂單級折扣的內容。 FWIW,用戶在我們的網站上使用優惠碼,然後轉移到PayPal。
我認爲你的問題不是PayPal API。 你檢查了一切正常與你的參數傳遞給貝寶在這個50%的折扣情況下完美嗎?
在PayPal文檔之後,您應該提供一個負值以反映訂單的折扣。所以一切都加起來總數。
更新的代碼(由尼克)
我有一個貝寶服務,做各種東西,但下面的代碼應該給你一個折扣如何工作的想法。折扣並不是一種特殊類型,它與其他任何產品一樣,除了通過將折扣命名爲折扣並將其價格設置爲負數來僞裝外。
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()
}
});
}
爲通過貝寶API發送折扣使用PAYMENTREQUEST_n_SHIPDISCAMT
這實際上是一個航運折扣,但工作得很好,而且是一條線的另一種選擇。
但它確實說在PalPal結束時的運費折扣。
我已經設置了TaxTotal,ShippingTotal,ItemTotal和OrderTotal。除了設置折扣碼之外,所有這些工作都是有效的,因爲OrderTotal有一定量的金額,因此物料+運費+稅金不會累加到OrderTotal。我找不到可以設置折扣金額的地方。有任何想法嗎? – StephenPAdams
@look已更新回答 – Skomski
您是否在說我需要創建一個項目並將其值設置爲負數?然後更新ItemTotal以反映所有項目以及我爲增加折扣而添加的負項目? – StephenPAdams