Magento 1.9.0.1 ข้อผิดพลาดใน Paypal ยอดรวมของจำนวนสินค้าในรถเข็นไม่ตรงกับจำนวนการสั่งซื้อ (# 10413:


9

นี่คือการใช้ magento 1.9.0.1 ได้รวมกล่อง expres paypal นอกเหนือจากนี้คุณมีปลั๊กอินคะแนนโปรรางวัลเป็นคะแนนสะสมที่จะซื้อสินค้าบางอย่างซึ่งเมื่อมันกลายเป็นการรวมและการซื้อสินค้าโดยไม่ต้องใช้คะแนนของ recompesa การชำระเงินด้วย paypal นิกุนสามารถทำได้โดยไม่มีปัญหา แต่เมื่อลูกค้าใช้คะแนนสะสมข้อผิดพลาดเมื่อยืนยันการสั่งซื้อซึ่งก็คือ

เกตเวย์ของ PayPal ปฏิเสธคำขอ ยอดรวมของรายการรถเข็นจำนวนเงินไม่ตรงกับคำสั่งซื้อ (# 10413: การทำธุรกรรมถูกปฏิเสธเนื่องจากอาร์กิวเมนต์ไม่ถูกต้องดูข้อความแสดงข้อผิดพลาดเพิ่มเติมเพื่อดูรายละเอียด)

ค้นหาเน็ตเพื่อลองและแก้ไขข้อผิดพลาดนี้ฉันขอแนะนำให้คุณแก้ไขไฟล์ Nav.php paypal โดยเพิ่มรหัสสองรหัสที่ฉันใส่ไว้ด้านล่าง:

รหัสแรก

// เริ่มแฮ็ค

$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 End

รหัสที่สอง

    // 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 ต่อลูกค้า> 125 เทียบเท่ากับ 20.54 ยอดซื้อทั้งหมดในร้านและ expres ชนิดบรรจุกล่อง paypal> 319.46 ปริมาณ recibda เพื่อดูบัญชีใน paypal> 20.54

นอกจากนี้เมื่อทำการซื้อคะแนนสะสมที่ยังไม่ได้ใช้จะมีข้อผิดพลาดระบุว่าจำนวนการทำธุรกรรมนั้นถูกต้องเพราะมันเป็นศูนย์ปรากฏขึ้น

ฉันงงงวยเพื่อดูว่ารหัสข้อผิดพลาดใดที่จะแก้ไข แต่ฉันไม่สามารถทำได้ไม่ใช่ถ้ามีคนรู้ว่าฉันต้องทำหรือสามารถช่วยได้


ที่ตั้งของ Nav.php
Giuseppe

ปัญหาของคุณได้รับการแก้ไขหรือไม่?
อัญมณี

คำตอบ:


7

ปัญหา

ปัญหาชัดเจนจากข้อความ: ยอดรวมของรายการและยอดรวมของรถเข็นที่ส่งไปยัง Paypal ไม่ตรงกัน
ตามที่คุณทราบแล้วดูเหมือนว่านี่เป็นปัญหาของส่วนขยายคะแนนนั้น (หรือขาดการสนับสนุน Paypal Express อย่างสมบูรณ์)

ทางออกที่ต้องการ

สิ่งแรกที่ฉันแนะนำคือตรวจสอบว่าคุณใช้ส่วนขยาย Reward Points Pro รุ่นล่าสุดเนื่องจากอาจเพิ่มการรองรับ Paypal Express หรือแก้ไขปัญหาที่คุณพบ ถ้าไม่ติดต่อฝ่ายสนับสนุนและพยายามขอความช่วยเหลือจากพวกเขา

โซลูชันที่กำหนดเอง

หมายเหตุ:โปรดอย่าดัดแปลงไฟล์หลักของวีโอไอพี หากไม่มีทางเลือกอื่น (ใช้ผู้สังเกตการณ์ ฯลฯ ) ให้คัดลอกไฟล์ในกลุ่มรหัสโลคัลและเขียนทับที่นั่น

คุณควรจะดูลงในไฟล์app / รหัส / core / Mage / Paypal / รุ่น / Cart.phpสาย# 318 อย่างที่คุณเห็น Magento ยื้อเหตุการณ์ที่นั่นซึ่งคุณสามารถใช้เพื่อลองแก้ไขปัญหานี้
โดยการสังเกตเหตุการณ์นั้นคุณจะสามารถเข้าถึงวัตถุMage_Paypal_Model_Cart ที่เกิดขึ้นจริงที่มีรายการและยอดรวมของรถเข็นที่จะถูกส่งไปยัง Paypal

ฉันขอโทษ แต่ไม่ทราบว่าส่วนขยายของคะแนนสะสมคะแนนทำงานอย่างไรฉันไม่สามารถให้คำแนะนำที่แน่นอนพร้อมรหัสและทุกสิ่งได้ โดยทั่วไปคุณควรพยายามทำความเข้าใจว่าเกิดอะไรขึ้นในเมธอด _render () & _validate ()ในแอพ / รหัส / core / Mage / Paypal / รุ่น / Cart.phpและตรวจสอบให้แน่ใจว่ามีการใช้คะแนนส่วนลดอย่างถูกต้อง

นอกจากนี้ฉันไม่เข้าใจส่วนหลังรหัสอย่างแน่นอน แต่โปรดแจ้งให้เราทราบหากคุณมีข้อสงสัย


โซลูชั่นยอดเยี่ยมทำงานได้อย่างสมบูรณ์ แต่ต้องมีการแก้ไขอีกหนึ่งอย่าง ในไฟล์ php เดียวกันอีกวิธีหนึ่ง _addRegularItem () จะมี จำนวนที่กล่าวถึงยังมี ต้องปรับเปลี่ยนที่
ผีเสื้อ

0

ปัญหาไม่ได้อยู่ในรหัส แต่เป็นปัญหาการกำหนดค่า เพียงให้แน่ใจว่าภาษีของคุณถูกนำไปใช้กับผลรวมย่อยแทนยอดรวมทั้งหมดตรวจสอบภาพหน้าจอที่แนบมา ตรวจสอบให้แน่ใจว่า "โอนรายการโฆษณารถเข็น" ของคุณถูกตั้งเป็น YES ด้วยเช่นกัน "โอนตัวเลือกการจัดส่ง" เป็นใช่ป้อนคำอธิบายรูปภาพที่นี่


0

เรามีข้อผิดพลาด paypal เดียวกันและพบว่าเมื่อบทความอยู่ใน "ปลอดภาษี" ปัญหาจะหายไป ดังนั้นเราจึงปิดการใช้งานปลั๊กอินการชำระเงินบางส่วนซึ่งคำนวณผลรวมบางส่วน ดังนั้นสิ่งนี้ช่วยในกรณีของเรา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.