【问题标题】:Codeigniter Paypal Express Checkout not passing ShippingAMT and TAXAMTCodeigniter Paypal Express Checkout 未通过 ShippingAMT 和 TAXAMT
【发布时间】:2013-06-30 13:55:28
【问题描述】:

这就是问题所在——我使用 Codeigniter 作为我的框架并集成了 Paypal Express Checkout。我使用的库是 CI_MERCHANT,它工作得很好,但是当我 print_r 发送参数然后返回 GetTransactionDetails 时,它们是不同的

这是我要发送的内容:

    Array
(
    [METHOD] => SetExpressCheckout
    [VERSION] => 94.0
    [USER] => ***
    [PWD] => ***
    [SIGNATURE] => ***
    [PAYMENTREQUEST_0_PAYMENTACTION] => Authorization
    [PAYMENTREQUEST_0_CURRENCYCODE] => USD
    [PAYMENTREQUEST_0_AMT] => 37.95
    [PAYMENTREQUEST_0_ITEMAMT] => 35.95
    [PAYMENTREQUEST_0_DESC] => invoice-#test
    [PAYMENTREQUEST_0_TAXAMT] => 1.00
    [PAYMENTREQUEST_0_SHIPPINGAMT] => 1.00
    [L_PAYMENTREQUEST_0_NAME0] => Item_1
    [L_PAYMENTREQUEST_0_DESC0] => 
    [L_PAYMENTREQUEST_0_AMT0] => 35.95
    [L_PAYMENTREQUEST_0_QTY0] => 1
    [AMT] => 37.95
    [SOLUTIONTYPE] => Sole
    [LANDINGPAGE] => Billing
    [ALLOWNOTE] => 1
    [RETURNURL] => URL/ACCEPT
    [CANCELURL] => URL/DECLINE
    [PAYMENTREQUEST_0_SHIPTONAME] => first_name second_name
    [PAYMENTREQUEST_0_SHIPTOSTREET] => address1
    [PAYMENTREQUEST_0_SHIPTOSTREET2] => address2
    [PAYMENTREQUEST_0_SHIPTOCITY] => city
    [PAYMENTREQUEST_0_SHIPTOSTATE] => state
    [PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE] => US
    [PAYMENTREQUEST_0_SHIPTOZIP] => zip
    [PAYMENTREQUEST_0_SHIPTOPHONENUM] => 
    [PAYMENTREQUEST_0_EMAIL] => email@dot.com
    [PAYMENTREQUEST_0_INVNUM] => 1468808
    [upload] => 1
)

我得到的回应是:

Array
(
    [RECEIVEREMAIL] => ***
    [RECEIVERID] => ***
    [EMAIL] => email@dot.com
    [PAYERID] => ***
    [PAYERSTATUS] => verified
    [COUNTRYCODE] => US
    [SHIPTONAME] => first_name last_name
    [SHIPTOSTREET] => address1
    [SHIPTOCITY] => city
    [SHIPTOSTATE] => state
    [SHIPTOCOUNTRYCODE] => US
    [SHIPTOCOUNTRYNAME] => United States
    [SHIPTOZIP] => ZIP
    [ADDRESSOWNER] => PayPal
    [ADDRESSSTATUS] => Confirmed
    [INVNUM] => 1468808
    [SALESTAX] => 0.00
    [SUBJECT] => invoice-#test
    [TIMESTAMP] => 2013-07-03T01:29:04Z
    [CORRELATIONID] => b64ae0d8c4388
    [ACK] => Success
    [VERSION] => 94.0
    [BUILD] => 6561328
    [FIRSTNAME] => first_name
    [LASTNAME] => last_name
    [TRANSACTIONID] => ***
    [TRANSACTIONTYPE] => cart
    [PAYMENTTYPE] => instant
    [ORDERTIME] => 2013-07-03T01:29:02Z
    [AMT] => 35.95
    [TAXAMT] => 0.00
    [SHIPPINGAMT] => 0.00
    [HANDLINGAMT] => 0.00
    [CURRENCYCODE] => USD
    [PAYMENTSTATUS] => Pending
    [PENDINGREASON] => paymentreview
    [REASONCODE] => None
    [PROTECTIONELIGIBILITY] => Ineligible
    [PROTECTIONELIGIBILITYTYPE] => None
    [L_NAME0] => Item_1
    [L_QTY0] => 1
    [L_TAXAMT0] => 0.00
    [L_SHIPPINGAMT0] => 0.00
    [L_HANDLINGAMT0] => 0.00
    [L_CURRENCYCODE0] => USD
    [L_TAXABLE0] => false
    [L_AMT0] => 35.95
}

我尝试了以下方法: 使用不同的版本声明。 我知道 SHIPPINGAMT 和 TAXAMT 自 63.0 版以来已被弃用,因此我尝试使用它并将其设置为 61 版无济于事。

同样在沙盒帐户中,“客户”只需要支付 ITEMAMT 而不是全额运费。但是在结帐时它确实通过了金额,因为显示的总数是 ITEMAMT + SHIPPING + TAX。

有人知道发生了什么吗?

赞赏。

【问题讨论】:

    标签: php codeigniter paypal e-commerce express-checkout


    【解决方案1】:

    我假设您在调用 DoExpressCheckoutPayment 之前调用 GetExpressCheckoutDetails..??

    我很确定您看到的是预期结果。在调用 DoExpressCheckoutPayment 之前,运费和税额可能会发生变化,因此 GECD 不会反映任何内容。

    当您重定向到 PayPal 时,您是否看到订单审核中包含运费和税金?如果是这样,那么你做的一切都是正确的。只是,再次,GECD 不包括这些细节,因为它们可能会改变。例如,您可以致电 GECD 以获取付款人的收货地址,以便您可以相应地计算运费和税金,这可能与您向 SEC 发送的内容不同。

    无论如何,请检查您是否能够在 PayPal 的评论页面中看到您在 SEC 中发送的内容,然后使用 DECP 完成所有内容,我猜您会看到它按预期包含在内(只要你在你的 DECP 请求中包含它。)

    【讨论】:

    • 嗨 - 我不使用 GetExpressCheckoutDetails - 我将所有内容直接发送到贝宝重定向。 (这是我在第一个数组中显示的)。在此期间,向用户显示运费和税金,但随后捕获的金额不正确,缺少运费和税金。
    • 那么您的 DoExpressCheckoutPayment 请求呢?您需要确保其中也包含运费和税费。
    • 我从来没有调用过它——我做了设置来获取令牌,然后我通过重定向发送参数,沙箱支付,并返回到指定的 url。这两个数组都显示了。我错过了一个流程吗?
    • 如果没有 DoExpressCheckoutPayment,您将无法完成该过程。如果你不打电话,那么钱实际上并没有被转移。当您被重定向回您的网站后,您就可以拨打电话完成所有事情了。
    • 但付款已转移 - 只是缺少运费和税费。就像作为测试商家一样 - 我可以很短地捕获付款。如果这不正确-那么实现此目的的正确流程是什么:我的网站运输信息+电子邮件-> Paypal网站重定向显示客户项目和最终总数-> Paypal重定向到我的接受页面,其中包含客户信息以及正确捕获的金额航运
    猜你喜欢
    • 2011-12-30
    • 2012-06-18
    • 1970-01-01
    • 2018-05-28
    • 2013-05-28
    • 2018-03-01
    • 2017-09-02
    • 2011-11-08
    • 2017-10-28
    相关资源
    最近更新 更多