Paypal快速结账:申请订单折扣

Ste*_*ams 8 c# paypal

有一个运行ZNode的电子商务网站.我们发送税,运费,订单总额等.一切正常,直到应用订单级折扣(比如说50%).我们收到PayPal的回复,说明如下:

购物车项目金额的总计与订单金额不匹配.

我正在遍历API,我找不到任何应用订单级折扣的东西.FWIW,用户在我们的网站上应用折扣代码,然后转移到PayPal.

Sko*_*ski 18

我认为您的问题不是PayPal API.您检查了在这个50%折扣案例中传递给PayPal的参数一切正常吗?

在PayPal文档之后,您应该提供负值以反映订单的折扣.所以一切都会增加总额.

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

在此输入图像描述

更新代码:(由尼克)

我有一个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()
                                      }
                          });
        }
Run Code Online (Sandbox Code Playgroud)

  • 你是说我需要创建一个项目并将值设置为负数?然后更新ItemTotal以反映所有项目以及我为折扣帐户添加的否定项目? (4认同)
  • PayPal'Customizing'文档提到"例如,您可以提供负值以反映订单的折扣." 在订单详情的"金额"字段的描述中,但没有其他地方.@Skomski - 我可以阅读,但我错过了这些信息,因为我不认为包括折扣会被视为'定制'PayPal结账.此外,"SetExpressCheckout"和"DoExpressCheckoutPayment"操作的文档在同一字段的描述中不包含该信息. (3认同)