これは、magento 1.9.0.1を使用して、box expres paypalを統合しました。これに加えて、プラグインプロの報酬ポイントを報酬ポイントとして使用し、一部の製品を購入すると、統合およびポイントを使用せずに製品を購入し、paypalで支払います。 nigunは問題なく実行できますが、顧客がリワードポイントを使用すると、注文の確認時にエラーが発生します。
PayPalのゲートウェイがリクエストを拒否しました。カートアイテムの合計金額が注文と一致しません(#10413:引数が無効なため、トランザクションが拒否されました。詳細については、追加のエラーメッセージを参照してください。)
このエラーを解決するためにネットを検索して、ファイルNav.php paypalを変更して、以下に置く2つのコードを追加することをお勧めします。
最初のコード
//ハックスタート
$totalValue = $request['TAXAMT'] + $request['ITEMAMT'];
$finalValue = $totalValue - $request['AMT'];
if($request['SHIPPINGAMT'] > 0) {
$request['SHIPPINGAMT'] = ($request['AMT'] - ($request['TAXAMT'] + $request['ITEMAMT']));
$totalValue = $request['TAXAMT'] + $request['ITEMAMT'] + $request['SHIPPINGAMT'];
$finalValue = $totalValue - $request['AMT'];
}
if($request['AMT'] != $totalValue) {
if($totalValue > $request['AMT']) {
$request['TAXAMT'] = $request['TAXAMT'] - $finalValue;
}elseif($totalValue < $request['AMT']) {
$request['TAXAMT'] = $request['TAXAMT'] + $finalValue;
}else{
$request['AMT'] = $request['TAXAMT'] + $request['ITEMAMT'];
}
}
//ハックエンド
2番目のコード
// Check discount
$lineAmt = 0;
$discount = 0;
$line = 0;
$discountIndex = 0;
while(isset($request["L_AMT{$line}"])) {
if($request["L_NAME{$line}"] == 'Discount') {
$discount += $request["L_AMT{$line}"];
$discountIndex = $line;
}
else {
$lineAmt += $request["L_AMT{$line}"];
}
$line++;
}
if($discount) {
if($discount + $lineAmt != $request['ITEMAMT']) {
// Do correction
$request["L_AMT{$discountIndex}"] = ($request['ITEMAMT'] - $lineAmt);
}
} else {
// Check item amount adds up
$correctItemAmt = $request['AMT'] - $request['SHIPPINGAMT'] - $request['TAXAMT'];
if($correctItemAmt != $request['ITEMAMT']) {
$request['ITEMAMT'] = $correctItemAmt;
}
//終わり
許可されている場合はいずれかのコードを追加し、その割引ポイントに対して支払いを行いますが、問題は、paypalの支払いが表示されたときに、合計額ではなく割引額が課金されることです。paypalの顧客がログインしてからexpresボックス、すべての金額が正しく、最終的に総支払い額が問題ないdesglozadas、ストアに戻って注文を確認します。これは正常に行われますが、割引額でのpaypal支払いが私たちが受け取るものである場合は、はっきりさせて
製品のコスト>顧客ごとの340ポイントusuados> 20.54に相当する125相当のストア内購入とPaypalのボックス化されたexpres> 319.46 Paypalでアカウントを表示するための数量レビダ> 20.54
これとは別に、未使用のリワードポイントの支払いを購入すると、取引金額がゼロであるため有効であるというエラーが表示されます。
私はそれを修正するためにエラーコードが何であるかを見て困惑しましたが、誰かが私がやらなければならないことを知っているか、助けることができるなら、私はそれを行うことができません