Magento 如何强制授权.net Directpost回复url为HTTPS?

Magento 如何强制授权.net Directpost回复url为HTTPS?,magento,authorize.net,dpm,Magento,Authorize.net,Dpm,我正在尝试在Magento 1.11.1生产站点上启用Authorize.net DPM(直接发布方法)。我的测试站点(也是Magento 1.11.1.0)运行良好,因为该站点不安全(前端SSL),但活动站点会出错。结果表明,发送到Authorize.net的回复url(x_reply_url)是以非ssl的形式发送的(例如,以POST的形式)。但是,这会得到一个500错误,因为Magento设置为在前端需要SSL。如果我使用(作为帖子)发送一个测试帖子,它会得到200个响应。我通过在DPM支

我正在尝试在Magento 1.11.1生产站点上启用Authorize.net DPM(直接发布方法)。我的测试站点(也是Magento 1.11.1.0)运行良好,因为该站点不安全(前端SSL),但活动站点会出错。结果表明,发送到Authorize.net的回复url(x_reply_url)是以非ssl的形式发送的(例如,以POST的形式)。但是,这会得到一个500错误,因为Magento设置为在前端需要SSL。如果我使用(作为帖子)发送一个测试帖子,它会得到200个响应。我通过在DPM支付方法中打开Debug,然后查看文件var/log/payment\u authorizenet\u directpost.log来了解这一点

因此,我正在查看app/code/core/Mage/Authorizenet中的所有代码,还没有拿出一段代码,其中可能包含这个非ssl URL。当然,然后回答“为什么不改为拉一个安全的URL?”

它可能起源于controllers/Directpost/PaymentController.php的placeAction方法


我希望我能在这里获得一些信息,了解我是否在正确的轨道上,以及如何最好地记录或转储适当的变量(在我的测试站点上)以验证任何更改。

已解决。这似乎是authorize.net directpost方法代码中的一个错误

修改文件:app/code/core/Mage/Authorizenet/Model/Directpost.php

方法:getRelayUrl

旧代码:

return Mage::app()->getStore($storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . 'authorizenet/directpost_payment/response';
新代码:

if(Mage::app()->getStore($storeId)->isCurrentlySecure()) {
  return rtrim(Mage::getUrl('authorizenet/directpost', array('_secure' => true)),"/") .     '_payment/response';
} else {
  return Mage::app()->getStore($storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . 'authorizenet/directpost_payment/response';
}

这是在Magento Pro 1.11.1.0中实现的(与Magento EE 1.11.1.0的代码相同)。我尚未收到对任何较新版本Magento EE的访问权限,以查看是否已在1.12或更高版本中解决此问题。

您是否有权访问发送到Authorize.net的x_reply_url?如果是,请尝试将其设置为//mysite.com/。。。(去掉“http:”)。这样的链接将根据需要用作http或https。我没有遇到您在Enterprise中描述的问题。你有没有想过升级到1.12版本?seanbreeden:我们正准备很快升级到该站点,但这必须在升级之前解决。我正在下载1.12或1.13以查看authorizenet Magento代码中可能的更改。谢谢。帕特里克:实际上,访问设置x_reply_url的内容正是我想要的。仍然不确定它是JS还是PHP。谢谢。@Patrick该URL必须是绝对的,并且独立存在。它是由Authorize.Net payment gateway调用的,而不是在浏览器页面的上下文中调用的,因此//本身在没有协议的情况下无法工作。我使用的是Magento CE 1.18,它对我来说仍然是坏的,您的代码为我修复了一些问题。谢谢Magento CE 1.9.2.4-此修复对我来说也是必要的。附加信息:不要忘记在authorize.net后端添加url作为默认中继响应url