ogone字符串问题

时间:2013-01-14 19:17:06

标签: php payment

我有一个来自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/

这些是我的设置:

enter image description here enter image description here

任何帮助?

1 个答案:

答案 0 :(得分:11)

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

我想你是从另一个URL调用它们的。因此,我建议您在测试时从配置屏幕中删除引用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>