0
當我們在opencart中有很多產品選項時,它會導致通過paypal express傳遞的描述長度超過127個字符。因此,當我們返回購物車以確認訂單時,我們收到錯誤18112 - 「描述參數的值已被截斷」。Opencart PayPal Express Error 18112
Paypal說:「如果您的購物車的描述值超過了允許的限制,則返回此警告錯誤消息。對於PAYMENTREQUEST_0_DESC,字符長度限制爲127個字符;因此,如果您的購物車傳遞的值大於此限制,則會返回此錯誤。「
我需要幫助瞭解如何截斷paypal express接收的描述,使其不超過126個字符。
以下是處理選項說明的代碼部分。任何人都可以幫我弄清楚如何將發送給PayPal的描述截斷爲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附帶的默認paypal express模塊。而且我已經覺得自己像個白癡,但是你給我的代碼去哪了?取代另一部分? –
從'$ data'''L_PAYMENTREQUEST_0_DESC''開始替換'foreach'中的行。 $ i]'與上面的塊並應該工作 – Machavity
非常感謝你的幫助!這是我作爲志願者創建的非營利網站。我非常感謝你的幫助和快速回復! –