1

我有一个来自 Ogone 的测试帐户,我正在尝试测试支付系统。出于测试目的,我用最少的参数构建了一个字符串:

$ogoSHAstring = "AMOUNT=" . $amount . $signature . 
                "CURRENCY=" . $currency. $signature . 
                "LANGUAGE=" . $language . $signature . 
                "ORDERID=" . $orderId . $signature . 
                "PSPID=" . $pspId . $signature;

它产生一个如下所示的字符串:

AMOUNT=990MySecretPassphrase!!CURRENCY=EURMySecretPassphrase!!LANGUAGE=nl_NLMySecretPassphrase!!ORDERID=67MySecretPassphrase!!PSPID=MyPSPIDMySecretPassphrase!!

哪个是散列到

1B8B605EAEF8E2FD9350958C0B152E22FD61FADB

发送的表格如下所示:

<form id='ogone' action='https://secure.ogone.com/ncol/test/orderstandard.asp' method='post'>
    <input type='hidden' name='AMOUNT' value='$amount' />
    <input type='hidden' name='CURRENCY' value='$currency' />
    <input type='hidden' name='LANGUAGE' value='$language' />
    <input type='hidden' name='ORDERID' value='$orderId' />
    <input type='hidden' name='PSPID' value='$pspId' />
    <input type='hidden' name='SHASIGN' value='$ogoSHAsign' />
</form>

但我不断收到错误消息:

unknown order/1/r/

这些是我的设置:

在此处输入图像描述 在此处输入图像描述

有什么帮助吗?

4

1 回答 1

11

如果您收到错误,unknown order/1/r/这不是由于您的 SHA 计算。这是由于您的引用 URL。正如您在Data and origin verification选项卡中配置的那样,您的表单应该从 调用 Ogone http://www.someurl.com/php/ogone.php

我猜你是从另一个 URL 调用它们。因此,我建议您在测试时从他们的配置屏幕中删除引荐来源网址。或者使用您实际使用的那个。

如果您遇到 SHA 错误,您将收到该unknown order/1/s/错误。

最后,您的表格也不正确。您只是在表单中编写您的 PHP 变量名,而不是真正地编写echo它们。将其更改为:

<form id='ogone' action='https://secure.ogone.com/ncol/test/orderstandard.asp' method='post'>
    <input type='hidden' name='AMOUNT' value='<?=$amount?>' />
    <input type='hidden' name='CURRENCY' value='<?=$currency?>' />
    <input type='hidden' name='LANGUAGE' value='<?=$language?>' />
    <input type='hidden' name='ORDERID' value='<?=$orderId?>' />
    <input type='hidden' name='PSPID' value='<?=$pspId?>' />
    <input type='hidden' name='SHASIGN' value='<?=$ogoSHAsign?>' />
</form>
于 2013-01-30T10:18:03.767 回答