【发布时间】:2012-07-20 03:17:58
【问题描述】:
我正在努力支持 ZAR(南非兰特)的结账。
到目前为止,我已启用 $,这将启用 paypal 模块,但转换尚未完成。
该网站只需结帐即可获得价值。例如:R1500.00 = $1500.00 通过贝宝结账时。
使用内置转换器进行货币转换的正确方法是什么?
【问题讨论】:
我正在努力支持 ZAR(南非兰特)的结账。
到目前为止,我已启用 $,这将启用 paypal 模块,但转换尚未完成。
该网站只需结帐即可获得价值。例如:R1500.00 = $1500.00 通过贝宝结账时。
使用内置转换器进行货币转换的正确方法是什么?
【问题讨论】:
好的,找到了解决方案:
用户Qphoria取自Opencart Forum
问:如果我的货币不受支持,我该如何使用 paypal? 问:如何使用不支持我的货币的支付网关? 问:Paypal 不支持我的货币?
答: 您仅限于支付网关支持的内容。但是,您可以添加代码以相当容易地将您的货币自动转换为受支持货币的当前汇率。
(v1.5.x) 1. 编辑:目录/控制器/支付/.php
代码:全选 $order_info = $this->model_checkout_order->getOrder
代码:全选 $order_info['currency_code'] = 'USD';
无论您选择使用哪种货币,请确保您在商店的管理->系统->本地化->货币页面中的货币列表中有它。不需要启用,只要存在就可以进行转化计算。
这将在金额发送到网关之前自动转换金额。客户可能不会注意到这一点。 例如,他们会在结帐页面上看到 1000 AED 但是您会在您的贝宝账户中看到 272.25 美元(基于当前的兑换率)。
直到 1.5.1.3,Paypal Standard 自动执行此操作 在 1.5.2 中,它被更改(不是为了更好),如果使用不受支持的货币,则简单地将其从支付列表中禁用。所以这需要特殊的指令,也许应该在核心中改变。
现在: 1.编辑:目录/模型/付款/pp_standard.php
代码:全选 if (!in_array(strtoupper($this->currency->getCode()), $currencies)) { $状态=假; }
编辑:目录/控制器/支付/pp_standard.php
查找(仅限第一个实例):
代码:全选 $order_info = $this->model_checkout_order->getOrder
代码:全选 $currencies = array('AUD','CAD','EUR','GBP','JPY','USD','NZD','CHF','HKD','SGD','SEK',' DKK','PLN','NOK','HUF','CZK','ILS','MXN','MYR','BRL','PHP','TWD','THB','TRY' ); if (!in_array(strtoupper($this->currency->getCode()), $currencies)) { $order_info['currency_code'] = 'USD'; }
用您选择的支持货币更改“USD”。
【讨论】:
对于 opencart 2 或 3 第一步是一样的 编辑:目录/模型/扩展/付款/pp_standard.php
查找并删除:
if (!in_array(strtoupper($this->currency->getCode()), $currencies)) { $status = false; }
第二步是
在目录/控制器/扩展/付款/pp_standard.php 找到
$order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
在它之后,并且
$order_info['currency_code'] = 'USD';
此解决方案会将所有货币兑换成美元,然后前往 paypal.com 付款
【讨论】: