gpt4 book ai didi

php - Opencart PayPal Express 错误 18112

转载 作者:太空宇宙 更新时间:2023-11-03 16:32:51 24 4
gpt4 key购买 nike

当我们在opencart中有很多产品选项时,导致传递给paypal express的描述超过127个字符。因此,当我们返 repo 物车确认订单时,我们收到错误 18112 - “Description 参数的值已被截断。”

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 .我很惊讶你没有想到它,因为你正在使用 utf8_substr,它似乎做同样的事情。

$descr = ($option_count > 0 ? ', ' : '') . $option['name'] . ':' . (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value);
$descr = substr($descr, 0, 126);
$data['L_PAYMENTREQUEST_0_DESC' . $i] = $descr;

关于php - Opencart PayPal Express 错误 18112,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com