2013-01-24 16 views
5

このエラーについては多くの投稿がありますが、それらはすべて私に当てはまりません。私は本当に金額が一致しない理由を理解していません。私はAMT0 * QTY0と一致するITEMAMTを持っています。 AMTはITEMAMT + SHIPPINGAMTと一致します。私は何度もドキュメントをチェックして、本当にこのように動作するはずです。それは私がそれから船積みを完全に取り除くとき働く...PayPal API:カートアイテムの金額の合計が注文金額と一致しません

チェックアウトURLのAMTは73.9である。

私は本当にあなたが2進で通貨を送信することは必須である事前に

おかげ

Array 
(
    [TIMESTAMP] => 2013-01-24T22:56:09Z 
    [CORRELATIONID] => 
    [ACK] => Failure 
    [VERSION] => 62.0 
    [BUILD] => 4181146 
    [L_ERRORCODE0] => 10413 
    [L_SHORTMESSAGE0] => Transaction refused because of an invalid argument. See additional error messages for details. 
    [L_LONGMESSAGE0] => The totals of the cart item amounts do not match order amounts. 
    [L_SEVERITYCODE0] => Error 
) 
Array 
(
    [PAYMENTREQUEST_0_PAYMENTACTION] => Sale 
    [L_PAYMENTREQUEST_0_NAME0] => XXXX 
    [L_PAYMENTREQUEST_0_NUMBER0] => 30533 
    [L_PAYMENTREQUEST_0_DESC0] => XXXX 
    [L_PAYMENTREQUEST_0_AMT0] => 30.95 
    [L_PAYMENTREQUEST_0_QTY0] => 2 
    [PAYMENTREQUEST_0_ITEMAMT] => 61.9 
    [PAYMENTREQUEST_0_TAXAMT] => 0 
    [PAYMENTREQUEST_0_SHIPPINGAMT] => 12 
    [PAYMENTREQUEST_0_INSURANCEAMT] => 0 
    [PAYMENTREQUEST_0_AMT] => 73.9 
    [PAYMENTREQUEST_0_CURRENCYCODE] => USD 
    [REQCONFIRMSHIPPING] => 1 
    [PAYMENTREQUEST_0_SHIPTOSTREET] => XXXX 
    [PAYMENTREQUEST_0_SHIPTOCITY] => XXXX 
    [PAYMENTREQUEST_0_SHIPTOSTATE] => XX 
    [PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE] => XX 
    [PAYMENTREQUEST_0_SHIPTOZIP] => XXXXXX 
    [PAYMENTREQUEST_0_SHIPTOPHONENUM] => XXXXXXXX 
) 

答えて

2

私の質問に対する答えは、おそらくあなたのほとんどが役に立っているでしょう。しかし、私の項目の1つには説明の中に&が含まれていました(L_PAYMENTREQUEST_0_DESC0)。 '&'はCURLで渡されたデータをエスケープしました。そして、それはエラーを作りました(それは完全にオフです)。これは、URLがエンコードされているときに&を含む任意の文字を入力すると発生します。 éはé

私の最初の投稿から項目の説明を削除することをお詫びしますが、これについては、金額に関するエラーメッセージのためにこれと関係があるとは思わなかった。

4

...誰かがこの非常に混乱エラーに精通している、と私が間違っているのかを知っている願っています場所。

AMT行下Table A.2を見てみましょう:

あなたが唯一の量が正しい形式ではないので、ペイパルは、このエラーが返されます。1.

$amt = 61.9; 
$amt = sprintf("%.2f",$amt); // 61.90 

を提供していることが表示されます

http://www.paypalobjects.com/en_US/ebook/PP_NVPAPI_DeveloperGuide/Appx_fieldreference.html

このルールは、「お金」パラメータを設定するたびに適用する必要があります。

+0

感謝として、それらを送信しても出荷量が、これはトリックを行うようには見えません。 [AMT] => 73.90 [L_PAYMENTREQUEST_0_AMT0] => 30.95 [PAYMENTREQUEST_0_ITEMAMT] => 61.90 [PAYMENTREQUEST_0_TAXAMT] => 0.00 [PAYMENTREQUEST_0_SHIPPINGAMT] => 12.00 [PAYMENTREQUEST_0_INSURANCEAMT] => 0.00 [PAYMENTREQUEST_0_AMT] => 73.90 がまだ得全く同じエラー – Chris

+0

@Chrisあなたは解決策を見つけましたか?私は同じ問題を抱えています。小数点以下ではエラーが発生します。私はpaypalに送信する前にtotalpriceexvat + vatでtotalpriceを分割しようとしています – alex

+0

私はすべてのお金var sprintf( "%。2f"、$ var)を入れました – alex

0

私はコミュニケーションしようとすると数日前に同じ問題を抱えていましたが、これらのオーダーの合計が実際には小数点以下の小数点で一致しないことに気付きました。あなたが50のようないくつかの整数を使ってコミュニケーションしようとすると、項目amtと合計(何も歳差なし)として何のエラーも起こりません。私はまた頭を壊していましたが、ペイパルには問題があります。 (実際は私でした) 計算をチェックして、ペースパルが2歳までの歳差または小数点以下の桁を受け入れることに注意してください。私は彼が言ったことについてサミュエルに同意する。

方が良い12.00の代わりに、あなたの答えのための12と61.90のような他の番号、73.90 ...

+2

私はそれがサミュエルクックと同じように必要であることを知っています。しかし、実際にはそうではありませんでした。 PHPでround($ value、2)を使用しました。つまり、必要な場合は2小数点以下に丸めます。 12.00は12、61.90は61.9、30.95は30.95になります。 PayPalでは2小数点未満の値は受け付けませんが、小数点以下2桁まで四捨五入しないと、PayPalの計算で値が加算されません。 AMT0 => 10.55、QTY0 => 2のpaypalは21.10、ITEMAMTは21.1、QTY0 => 3、値は31.65と計算されます。 – Chris

関連する問題