2013-07-03 40 views
0

這裏是問題 - 我使用Codeigniter作爲我的框架和整合Paypal Express Checkout。我使用該庫是CI_MERCHANT,當我print_r的參數發送的,然後問了GetTransactionDetails回到它們是不同的它工作相當精細然而Codeigniter Paypal快速結帳沒有通過ShippingAMT和TAXAMT

這裏就是我送了過來:

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 protected] 
    [PAYMENTREQUEST_0_INVNUM] => 1468808 
    [upload] => 1 
) 

我得到的迴應是:

Array 
(
    [RECEIVEREMAIL] => *** 
    [RECEIVERID] => *** 
    [EMAIL] => [email protected] 
    [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。

有人知道發生了什麼事嗎?

讚賞。

回答

0

我假設你在調用DoExpressCheckoutPayment之前調用GetExpressCheckoutDetails .. ??

我很確定你看到的是預期的結果。在調用DoExpressCheckoutPayment之前,運費和稅額可能會發生變化,因此GECD不會反映任何內容。

當您重定向到PayPal時,您是否看到包括在訂單審覈中的運費和稅金?如果是這樣,那麼你正在做的一切正確。只是,GECD再一次不包括這些細節,因爲它們可能會改變。例如,您可以致電GECD獲取付款人的收貨地址,以便您可以相應地計算運費和稅金,這可能與您向SEC發送的郵件不同。

無論如何,請檢查您是否能夠在PayPal的評論頁面中看到您在SEC中發送的內容,然後用DECP確定所有內容,並且我猜測您會發現它按預期方式包含因爲您在DECP請求中包含了相同的方法。)

+0

嗨 - 我不使用GetExpressCheckoutDetails - 即時消息將所有內容直接發送到PayPal重定向。 (這是我在第一個數組中顯示的內容)。在此期間,向用戶顯示運費和稅金,但之後的拍賣數量不正確,缺少運費和稅額。 – azngunit81

+0

那麼你的DoExpressCheckoutPayment請求呢?你需要確保運輸和稅收也包括在內。 –

+0

我從來沒有調用它 - 我做的設置來獲取令牌,然後我通過重定向發送參數,沙箱支付,並返回到指定的url。這兩個數組顯示。我錯過了一個流程? – azngunit81