2013-03-02 83 views
-3

雖然該字段確實有值,但我在DoDirectPayment代碼的響應中得到了«[L_LONGMESSAGE0] => OrderTotal(Amt):必需參數缺失»。PayPal Pro:«OrderTotal(Amt):必填參數缺失»

PayPal的這一功能非常完美,但使用與PayPal Sandbox完全相同的代碼很有效。這裏是我的PayPal類:

PayPal class

這是我的DoDirectPayment代碼:

DoDirectPayment code

+0

您可以包含$ request的結果嗎? – Robert 2013-03-02 12:21:35

+0

這是:Array [[TIMESTAMP] => 2013-03-02T00:12:38Z [CORRELATIONID] => 34588b295e39a [ACK] =>失敗[VERSION] => 94.0 [BUILD] => 5294323 [L_ERRORCODE0] => 81100 [L_SHORTMESSAGE0] =>缺少參數[L_LONGMESSAGE0] => OrderTotal(Amt):缺少必需的參數[L_SEVERITYCODE0] =>錯誤) – drake035 2013-03-02 16:10:56

+0

這就是響應,我們需要原始請求。 – Robert 2013-03-02 22:24:22

回答

2

代碼看起來不錯,假設$_SESSION['total_price']設置。但是,一些東西肯定會阻止AMT價值到達PayPal。你可以做一個原始的$ request和$ response字符串的背對背打印輸出,而不是陣列嗎?第21行和第34行。

+0

你想看到print_f($ request)和print_f($ response)的輸出嗎?我不知道該怎麼做,因爲這個錯誤只發生在真實的PayPal上,所以我不得不做出真正的付款。然而,這可能是錯誤不會系統地發生,我的付款已成功處理。你建議我做什麼? – drake035 2013-03-02 19:47:07

+1

使用虛假信用卡號碼[getcreditcardnumbers.com](http://www.getcreditcardnumbers.com)或沙箱中的買方帳戶中的「查看詳情」進行「真實」非沙盒支付。您可能會下降,當然,但這會顯示AMT傳遞正確... – 2013-03-02 20:10:10

+0

謝謝。我用'3'替換$ _SESSION ['total_price']並使用你的方法,我發現AMT正確傳遞(AMT = 3&ITEMAMT = 3在$ request中,[AMT] => 3.00在$ response中)。這表明$ _SESSION ['total_price']存在問題。但是如果是這樣的話,付款應該同樣失敗,PayPal Sandbox不是嗎?然而,他們與沙盒一起工作。 – drake035 2013-03-02 22:16:57