Php 带BluePay的AuthorizeNet模块

Php 带BluePay的AuthorizeNet模块,php,opencart,authorize.net,Php,Opencart,Authorize.net,我有一个使用OpenCart的商业网站,我决定是时候升级支付系统了。在我购买BluePay服务之前,我和他们谈过,他们说他们有一个OpenCart模块。事实证明,它们并没有真正的模块,而是有一个通过Authorize.net模块模拟事务的服务。我按照BluePay的指示连接了它,但它不太正常。它向客户卡收费,但所有订单都会被放入OpenCart中的“缺失”订单中。有人知道出了什么问题吗 编辑: 我终于明白了问题所在。为了节省其他人的时间,我想在这里发布解决方案 BluePay计算事务MD5哈希的

我有一个使用OpenCart的商业网站,我决定是时候升级支付系统了。在我购买BluePay服务之前,我和他们谈过,他们说他们有一个OpenCart模块。事实证明,它们并没有真正的模块,而是有一个通过Authorize.net模块模拟事务的服务。我按照BluePay的指示连接了它,但它不太正常。它向客户卡收费,但所有订单都会被放入OpenCart中的“缺失”订单中。有人知道出了什么问题吗

编辑:

我终于明白了问题所在。为了节省其他人的时间,我想在这里发布解决方案

BluePay计算事务MD5哈希的方式与Authorize.net不同。因此,如果不更改代码,所有订单都会被拒绝,因为MD5不匹配

为了在OpenCart上使用BluePay的
authorizenet_aim.php
模块,您需要对其进行如下编辑(
authorizenet_aim.php
在撰写本文时为3.1版):

  • 备份
    catalog/controllers/payment/authorizenet\u aim.php
  • 编辑目录/controllers/payment/authorizenet_aim.php并更改URL:
  • 将第48行替换为:

    $url = 'https://secure.bluepay.com/interfaces/a.net';
    
    将第50行替换为:

    $url = 'https' . '://secure.bluepay.com/interfaces/a.net.test';
    
  • 更改生成哈希的方式:
  • 将第138行替换为:

    if (strtoupper($response_info[38]) == strtoupper(md5($this->config->get('authorizenet_aim_key') . $this->config->get('authorizenet_aim_login') . 
    $response_info[7] . $this->currency->format($order_info['total'], $order_info['currency_code'], 1.00000, false)))) { 
    
    BluePay使用
    authorizenet\u aim\u key
    而不是
    authorizenet\u aim\u hash

    我这里有完整的编辑过的文件供任何想下载的人下载(只要我的个人服务器保持活动状态):


    你能分享这样的信息真是太好了(我是认真的!)。但我有一个建议,如何使这个问题更好-在问题区域,请只描述问题,然后用解决方案回答您自己的问题,并接受您自己的答案(2天后可能)。这样,您的问题将被标记为已回答,这将帮助其他用户解决相同/类似的问题。许多用户(我也是)并不总是打开缺少答案和/或没有可接受答案的问题。;-)谢谢你的反馈!我对堆栈溢出这件事还不熟悉,非常感激。:-)