【问题标题】:PayPal Express Apply Discount to ItemTotal/SubTotalPayPal Express 对 ItemTotal/SubTotal 应用折扣
【发布时间】:2012-10-01 16:17:15
【问题描述】:

PayPalExpress version 95.0ASP.Net & C#

CurrencyCodeType currency = (CurrencyCodeType)
   Enum.Parse(typeof(CurrencyCodeType), currencyCode.SelectedValue);
PaymentDetailsType paymentDetails = new PaymentDetailsType();
paymentDetails.ShippingTotal = new BasicAmountType(currency, shippingTotal.Value);
paymentDetails.ItemTotal = new BasicAmountType(currency, itemTotal.ToString());
paymentDetails.OrderTotal = new BasicAmountType(currency, orderTotal.ToString());

我只看到ShippingDiscount。我想知道如何在ItemTotal/SubTotal 上应用折扣(不是针对单个项目)。

我在 SO 中找到了Paypal Express Checkout: Apply order discount,但答案是关于单个商品的折扣。

感谢您的帮助!

【问题讨论】:

    标签: c# asp.net paypal


    【解决方案1】:

    天哪!刚刚想通了!这是正确的,因为您必须在您的商品中添加另一个商品作为折扣。最难的部分是让小数/总数正确!

    这是我的SUCCESS 提交:

    array(14) {
        //  ERROR AREA 1    //  Total Amount of Items (including -Discount) and shipping and tax
        ["PAYMENTREQUEST_0_AMT"]
                =>  string(4) "9.71"
        //  ERROR AREA 2    //  Total Amount of items ONLY, including the -Discount!
        ["PAYMENTREQUEST_0_ITEMAMT"]
                =>  string(4) "6.76"
        ["PAYMENTREQUEST_0_SHIPPINGAMT"]
                =>  string(4) "2.95"
        ["PAYMENTREQUEST_0_TAXAMT"]
                =>  string(1) "0"
    
        /*  ITEMS   */
    
            /*  ITEM 01 */
        ["L_PAYMENTREQUEST_0_NAME0"]
                =>  string(18) "Order # 987654"
        ["L_PAYMENTREQUEST_0_AMT0"]
                =>  float(12.51)
        ["L_PAYMENTREQUEST_0_NUMBER0"]
                =>  string(6) "987654"
        ["L_PAYMENTREQUEST_0_QTY0"]
                =>  float(1)
        ["L_PAYMENTREQUEST_0_ITEMCATEGORY0"]
                =>  string(8) "Physical"
    
            /*  ITEM 02 */
            /*  ¡THE DISCOUNT!  */
        ["L_PAYMENTREQUEST_0_NAME1"]
                =>  string(9) "PromoCode"
        ["L_PAYMENTREQUEST_0_AMT1"]
                =>  float(-5.75)
        ["L_PAYMENTREQUEST_0_NUMBER1"]
                =>  string(18) "Promo 123456"
        ["L_PAYMENTREQUEST_0_QTY1"]
                =>  float(1)
        ["L_PAYMENTREQUEST_0_ITEMCATEGORY1"]
                =>  string(8) "Physical"
    }
    

    成功!

    array(6) {
        ["TOKEN"]
            =>  string(20) "NOTIMPORTANT"
        ["TIMESTAMP"]
            =>  string(20) "2014-10-03T12:39:06Z"
        ["CORRELATIONID"]
            =>  string(12) "NOTIMPORTANT"
        ["ACK"]
            =>  string(7) "SUCCESS"
        ["VERSION"]
            =>  string(2) "93"
        ["BUILD"]
            =>  string(8) "13154493"
    }
    

    是的,我知道这个问题很老了,但我在其他任何地方都找不到答案。所以这是我的工作解决方案!

    【讨论】:

    • 感谢您的回答。目前,我无法使用 C# 验证它。我现在将其标记为已接受的答案。一旦我有机会测试它,我会再次回来评论。
    猜你喜欢
    • 2011-10-23
    • 2012-03-31
    • 2015-01-05
    • 2015-01-12
    • 2020-07-11
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    相关资源
    最近更新 更多