我正在编写一个简单的方法来编辑Paypal支付系统的状态,以便我可以在需要时在测试模式下切换它而无需进入代码。 “MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER”被定义为“实时”,但由于某种原因,它会继续抛出沙盒网址。
echo MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER ;
if (MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER == "Live") {
$form_action_url = 'https://www.paypal.com/cgi-bin/webscr';
} else {
$form_action_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
}
echo ' '.$form_action_url;
die();
以上输出:
如果我用'live'替换MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER它会正确返回值,我也尝试将DEFINE移动到变量,然后转到IF语句,但它仍然不起作用。
我正在使用OsCommerce通过管理系统来定义它。
var_dump还显示:
string(20)“Live”
而不是它应该:
string(4)“Live”
MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER的选项 是“Live”和“Sandbox”。
答案 0 :(得分:0)
以下代码按预期工作:
<?php
define("MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER", "LIVE");
echo MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER ;
if (MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER == "Live")
{
$form_action_url = 'https://www.paypal.com/cgi-bin/webscr';
}
else
{
$form_action_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
}
echo ' '.$form_action_url;
die();
?>
// Outpu: Live https://www.paypal.com/cgi-bin/webscr
你究竟如何定义你的常数?
更改以下内容时:
define("MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER", "LIVE");
输出
LIVE https://www.sandbox.paypal.com/cgi-bin/webscr
编辑:根据您的评论,代码完全按照应有的方式运行。您将常量定义为LIVE
,然后在针对Live
的if语句中进行检查。比较它们时,它们不相等,因此if
语句的计算结果为false,并执行第二个条件。
答案 1 :(得分:0)
<?php
if(!defined('MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER')) {
define('MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER', 'Live');
}
if(MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER == 'Live') {
echo('live');
} else {
echo('sandboxing');
}
?>
显示直播; - ))
按预期工作 - 无法重现您描述的结果。
答案 2 :(得分:0)
删除并添加MODULE_PAYMENT_PAYPAL_STANDARD_GATEWAY_SERVER几次后没有任何更改我完全从网站上删除了paypal脚本并再次安装它。现在它有效!