마 젠토 1.9.0.1 페이팔 오류 장바구니 항목 금액의 총계가 주문 금액과 일치하지 않습니다 (# 10413 :


9

magento 1.9.0.1을 사용하는 것은 상자 expres paypal을 통합 한 것입니다.이 외에도 플러그인 pro 보상 포인트가 일부 제품을 구입하기위한 보상 포인트로 사용됩니다. nigun은 문제없이 수행 할 수 있지만 고객이 보상 포인트를 사용하면 주문을 확인할 때 오류가 발생합니다.

PayPal의 게이트웨이가 요청을 거부했습니다. 장바구니 항목 금액 금액이 주문과 일치하지 않습니다 (# 10413 : 잘못된 인수로 인해 거래가 거부 됨 자세한 내용은 추가 오류 메시지를 참조하십시오).

이 오류를 해결하기 위해 그물을 검색하면 아래에 넣은 두 가지 코드를 추가하여 Nav.php 페이팔 파일을 수정할 수 있습니다.

첫 번째 코드

// 해킹 시작

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

// 해킹

두 번째 코드

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

//종료

코드를 추가하면 해당 할인 포인트에 대해 지불하고 결제 할 수 있지만 문제는 페이팔 결제를 볼 때 총액이 아닌 할인 금액을 지불하는 것입니다. 페이팔 고객이 로그인하여 expres 상자, 모든 금액이 정확하고 최종 지불 금액이 최종적으로 desglozadas이며, 상점으로 돌아와서 주문을 확인하십시오. 그러나 성공적으로 이루어졌지만 할인 금액의 페이팔 지불이 우리가받는 것입니다. 확실히 해

제품 원가> 고객 당 340 포인트 우사도 125> 20.54에 해당

이 외에도 결제 미사용 보상 포인트를 구매할 때 거래 금액이 0이므로 유효한 금액을 나타내는 오류가 나타납니다.

오류 코드가 무엇인지 수정하기 위해 당황했습니다. 그러나 누군가가 내가 알아야하거나 도움을 줄 수 없다면 그것을 할 수 없습니다.


Nav.php는 어디에 있습니까?
Giuseppe

문제가 해결 되었습니까?
Gem

답변:


7

문제

문제는 메시지에서 꽤 분명하다 : 페이팔로 전송되는 항목의 금액과 장바구니 총 금액의 합계가 일치하지 않습니다.
알다시피, 이것은 포인트 확장에 문제가있는 것 같습니다 (또는 Paypal Express에 대한 완전한 지원 부족).

선호하는 솔루션

가장 먼저 추천하는 것은 최신 버전의 Reward Points Pro 확장을 사용하고 있는지 확인하는 것입니다. Paypal Express에 대한 지원이 이미 추가되었거나 실행중인 문제가 해결되었을 수 있습니다. 그렇지 않은 경우 지원 부서에 문의하여 도움을 받으십시오.

맞춤형 솔루션

참고 : 절대로 핵심 Magento 파일을 수정하지 마십시오. 대안이없는 경우 (관찰자를 사용하는 등) 로컬 코드 풀에 파일을 복사 하고 덮어 씁니다.

app / code / core / Mage / Paypal / Model / Cart.php# 318 파일을 살펴보십시오 . 보시다시피 Magento는이 문제를 해결하기 위해 사용할 수있는 이벤트를 전달합니다.
해당 이벤트를 관찰 하면 Paypal로 전송 될 장바구니의 항목과 총계를 포함하는 실제 Mage_Paypal_Model_Cart 객체 에 액세스 할 수 있습니다.

죄송합니다. Reward Points Pro 확장 프로그램이 내부적으로 어떻게 작동하는지 모릅니다. 코드 및 모든 정보를 정확하게 제공 할 수는 없습니다. 기본적으로 app / code / core / Mage / Paypal / Model / Cart.php의 _render ()_validate () 메소드에서 발생하는 상황을 이해하고 포인트 사용으로 인한 할인이 올바르게 적용되는지 확인해야합니다.

또한 코드 후 마지막 부분을 정확히 이해할 수 없었지만 질문이 있으면 알려주십시오.


탁월한 솔루션, 완벽하게 작동하지만 한 번 더 수정해야합니다. 동일한 PHP 파일에는 _addRegularItem () 메소드가 하나 더 있습니다. AMount도 언급했습니다. 수정해야합니다.
나비

0

코드에 문제가 없지만 구성 문제입니다. 세금이 총계가 아닌 부분 합계에 적용되도록하십시오. 첨부 된 스크린 샷을 확인하십시오. "운송 카트 광고 항목"이 "예"로 설정되어 있고 "운송 옵션 전송"이 "예"로 설정되어 있는지 확인하십시오.여기에 이미지 설명을 입력하십시오


0

우리는 같은 페이팔 오류가 있었고 기사가 "세금 별도"일 때 문제가 사라 졌다는 것을 알았습니다. 따라서 일부 총계를 다시 계산하는 부분 결제 플러그인을 비활성화했습니다. 그래서 이것은 우리의 경우에 도움이되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.