0

我向 PayOne(Visa 卡)发送了测试付款,我的付款状态在 2 分钟内从“已指定”变为“已付款”,因此付款过程是正确的。

PayOne 所需的字符串“TSOK”由我通过print("TSOK").

如何POST从我的 PayOne TransactionStatus URL 获取变量?

PayOne API 文档在这里不是很有用。

4

1 回答 1

0

我不完全清楚你在这里问什么,但我会尝试从我自己的观察中解释它是如何工作的。

状态更改将发送到您的TransactionStatusURL。这将是一个带有一堆参数的 POST。

您的事务状态处理程序必须将这些详细信息(所有纯字符串$_POST)保存到适当的存储中,然后在完成后返回“TSOK”。它必须快速完成此操作,因为最终用户在使用“前端”(也称为托管表单)付款方式时将等待此响应。

如果您返回“TSOK”以外的任何内容,那么 PAYONE 将认为这是您的失败,并将继续每隔一段时间重新发送消息,直到最终被接受。因此,当 PAYONE 向您发送交易状态时,您无法向 PAYONE 传达任何信息,只能说“知道了,谢谢!”。

当用户在前端被重定向时,您必须跟踪服务器会话中发生的事情。您将拥有自己的交易 ID 和 PAYONE 生成的 ID - 使用这些 ID 在“反向通道”通知中查找保存到数据库的交易状态。

最后一个快速说明:PAYONE 在交易状态消息中发送的所有 POST 数据都将采用 ISO-8859-1 编码,无论最初使用什么编码发送支付请求。如果您的网站使用 UTF-8 - 现在大多数网站都会使用 - 那么不要忘记转换传入数据的编码。utf8_encode()会这样做。

希望有帮助。

于 2016-07-26T11:24:01.510 回答