opencart에서 많은 제품 옵션을 사용하게되면 paypal express로 전달 된 설명이 127자를 넘게됩니다. 이 때문에 주문을 확인하기 위해 장바구니에 다시 들어 오면 오류 18112가 발생합니다. "설명 매개 변수의 값이 잘 렸습니다."Opencart PayPal Express 오류 18112
Paypal은 "장바구니가 허용 된 한도를 초과하는 설명 값을 전달하는 경우이 경고 오류 메시지가 반환됩니다 .PAYMENTREQUEST_0_DESC의 경우 문자 길이 제한은 127 자이므로 카트가 이 제한보다 큰 경우이 오류가 반환됩니다. "
나는 paypal express가받는 설명을 자르는 방법을 알아내어 126 자 이하가되도록 도움을 필요로합니다.
다음은 옵션 설명을 처리하는 코드 섹션입니다. 누구나 내게 126 문자로 페이팔로 보낸 설명을 잘리는 방법을 알아낼 수 있을까?
foreach ($this->cart->getProducts() as $item) {
$data['L_PAYMENTREQUEST_0_DESC' . $i] = '';
$option_count = 0;
foreach ($item['option'] as $option) {
if ($option['type'] != 'file') {
$value = $option['option_value'];
} else {
$filename = $this->encryption->decrypt($option['option_value']);
$value = utf8_substr($filename, 0, utf8_strrpos($filename, '.'));
}
$data['L_PAYMENTREQUEST_0_DESC' . $i] .= ($option_count > 0 ? ', ' : '') . $option['name'] . ':' . (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value);
$option_count++;
}
내가 substr을 사용해야한다는 것을 알고 있었지만 어디에서 어떻게 사용하는지 알지 못했습니다. 이 코드는 opencart와 함께 제공되는 기본 페이팔 익스프레스 모듈의 코드입니다. 그리고 나는 이미 바보 같이 느껴지지만, 당신이 준 코드는 어디에 있습니까? 다른 섹션 대신에? –
'$ data [ 'L_PAYMENTREQUEST_0_DESC']를 시작하는'foreach'에서 줄 바꾸기. $ i]'위의 블록을 사용하면 작동합니다. – Machavity
도움을 주셔서 대단히 감사합니다! 이것은 내가 자원 봉사자로 만드는 비영리 사이트 용입니다. 귀하의 도움과 빠른 답변에 정말 감사드립니다! –