1

Moneris 支付网关问题我的表单代码是这样的

<FORM METHOD="POST" ACTION="https://www3.moneris.com/HPPDP/index.php">
 <INPUT TYPE="HIDDEN" NAME="ps_store_id" VALUE="xxxxxxxx">
<INPUT TYPE="HIDDEN" NAME="hpp_key" VALUE="xxxxxxx">
<INPUT TYPE="HIDDEN" NAME="charge_total" VALUE="1.00">
<INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="Click to proceed to Secure Page">
</form>

在过去的几个月里,这段代码运行正常。但是现在我突然开始收到一条错误消息:

The transaction was not sent to the host because of a duplicate order id

这是我所有的交易。你能帮我修一下吗?提前致谢/

4

2 回答 2

1

您的代码中必须有一个订单 ID。我在 Moneris 生产和 Moneris QA 中测试了上面的代码,它没有任何错误。

如果您未在代码中指定订单 ID,moneris 将自动为您生成唯一的订单 ID。

在您的响应变量(您从 Moneris 收到的)中,您列出了以下变量响应:

 [response_order_id] => Cup150513 

但是Cup150513不是 Moneris Hosted Pay Page 生成的订单 ID。Moneris 托管支付页面订单 ID 将始终以 mhp 开头,例如:mhp123456789。由于上述代码片段中没有指定订单 ID - 并且上述代码有效 - 这意味着订单 ID 必须位于代码中的其他位置。

以下是您可以执行的操作:

  1. 在您的代码中查找关键字 order_id 和 Cup 以找出生成订单 ID 的位置。

  2. 删除生成订单 ID 的代码或更改代码以使订单 ID 始终唯一

于 2013-06-18T21:13:16.193 回答
0

每当我发送的数据以相同的方式结束时,我都会遇到同样的错误(使用 xml 服务器发布):

{ result: 'success',
  code: 200,
  data:{
     ReceiptId: null,
     ReferenceNum: null,
     ResponseCode: null,
     ISO: null,
     AuthCode: null,
     TransTime: null,
     TransDate: null,
     TransType: null,
     Complete: false,
     Message: 'The transaction was not sent to the host because of a duplicate order id',
     TransAmount: null,
     CardType: null,
     TransID: null,
     TimedOut: false,
     BankTotals: null,
     Ticket: null,
     IsVisaDebit: false
    }
}

解决方案?我删除了“wallet_indicator”字段,现在我得到了完整的答案!

于 2016-10-05T20:56:05.627 回答