Magento 1.9.0.1 Paypal hatası Alışveriş sepeti ürün tutarlarının toplamı sipariş tutarlarıyla eşleşmiyor (# 10413:


9

magento 1.9.0.1 kullanarak bu kutu expres paypal entegre, buna ek olarak bazı eklentiler satın almak için ödül puan olarak eklenti pro ödül puanları var hangi entegrasyon haline geldiğinde ve recompesa puan kullanmadan ürün satın, paypal ile ödeme nigun sorunsuz yapılabilir, ancak müşteriler ödül puanlarını kullandıklarında, siparişi onaylarken bir hata;

PayPal'ın ağ geçidi isteği reddetti. Alışveriş sepeti öğesinin toplamı Tutarlar Tutarlar siparişle eşleşmiyor (# 10413: İşlem reddedildi Geçersiz bir bağımsız değişken nedeniyle Ayrıntılar için ek hata iletilerine bakın.)

Bu hatayı denemek ve düzeltmek için net arama, aşağıya koymak iki kod ekleyerek Nav.php paypal dosyasını değiştirmenizi öneririz:

ilk kod

// Hack Başlatma

$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'];
}
}

// Hack Sonu

ikinci Kod

    // 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;
}

//son

Her iki kodu da, izin verilirse ve bu indirim noktaları için ödeme yaparsanız, ancak sorun, paypal ödemesini gördüğünüzde, toplam tutar yerine indirim miktarını, paypal müşterilerinin oturum açıp geçtiği zamandır expres kutusu, tüm tutarlar doğru ve desglozadas sonunda toplam ödeme miktarı gayet iyi, mağazaya dönmek ve başarıyla yapılan sipariş onaylamak, ama indirim miktarında paypal ödeme aldığımız ne ise, örnek netleştir

Ürün Maliyeti> 340 Müşteri başına puan usuados> 125 20,54'e eşit

Bunun dışında, ödeme kullanılmayan ödül puanları satın alındığında, işlem tutarının Sıfır olduğu için geçerli olduğunu belirten bir hata görünür.

Ne hata kodları değiştirmek için görmek için şaşkın, ama yapamam, birisi yapmak zorunda biliyorum ya da yardımcı olabilir


Nav.php nerede bulunur?
Giuseppe

Sorununuz çözüldü mü çözülmedi mi?
Gem

Yanıtlar:


7

Sorun

Mesajdaki sorun oldukça açık: Paypal'a gönderilen toplam ürün miktarı ve alışveriş sepeti toplam tutarı eşleşmiyor.
Anladığınız gibi, bu, bu puan uzantısıyla (veya Paypal Express için tam destek eksikliğiyle) bir sorun gibi görünüyor.

Tercih edilen çözüm

Önerdiğim ilk şey, Reward Points Pro uzantısının en son sürümünü kullandığınızı kontrol etmektir, çünkü bunlar Paypal Express için destek eklemiş olabilir veya karşılaştığınız sorunu düzeltmiş olabilir. Değilse, desteklerine başvurun ve onlardan yardım almaya çalışın.

Özel çözüm

NOT: Lütfen hiçbir zaman temel Magento dosyasını değiştirmeyin. Alternatif yoksa (gözlemci vb. Kullanarak) dosyayı yerel kod havuzuna kopyalayın ve üzerine yazın.

Dosya içine bir göz atmalısınız app / kod / çekirdek / Büyücü / Paypal / Model / Cart.php hattı # 318 . Gördüğünüz gibi Magento, bu sorunu düzeltmek için kullanabileceğiniz bir olay gönderir.
Bu etkinliği gözlemleyerek, Paypal'a gönderilecek sepetin öğelerini ve toplamlarını içeren gerçek Mage_Paypal_Model_Cart nesnesine erişebileceksiniz .

Üzgünüm, ancak Reward Points Pro uzantısının dahili olarak nasıl çalıştığını bilmiyorum, size kod ve her şey hakkında tam bir rehberlik veremem. Temel olarak, app / code / core / Mage / Paypal / Model / Cart.php içindeki _render () & _validate () yöntemlerinde neler olduğunu anlamaya çalışmalı ve noktaları kullanarak indirimin doğru uygulandığından emin olmalısınız.

Ayrıca, koddan sonraki son kısmı tam olarak anlayamadım, ancak herhangi bir sorunuz varsa lütfen bana bildirin.


Mükemmel çözümler, mükemmel çalışıyor, Ama bir değişiklik daha gerekiyor. Aynı php dosyasında _addRegularItem () yöntemi daha var. AMount burada da belirtilmiştir. Bunu değiştirmek zorundasınız.
Kelebek

0

Kodda sorun yok, ancak bir yapılandırma sorunudur. Yalnızca toplamınızın yerine alt toplama verginizin uygulandığından emin olun. "Alışveriş Sepeti Öğelerini Aktar" seçeneğinin EVET olarak ayarlandığından ve "Gönderim Seçeneklerini Aktar" seçeneğini EVET olarak ayarladığınızdan emin olun.resim açıklamasını buraya girin


0

Aynı paypal hatalarına sahiptik ve bir makalenin "vergisiz" olduğu zaman sorunun ortadan kalktığını öğrendik. Bu nedenle, bazı toplamları yeniden hesaplayan kısmi bir ödeme eklentisini devre dışı bıraktık. Bu bizim durumumuzda yardımcı oldu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.