我正在尝试在我的 Rails 开发应用程序中实现一个 ogone 测试帐户,但我不断收到错误消息“商家未激活”
经过一番调查,我认为这与 SHA 编码有关?
问题是我真的不明白它是如何工作的,Ogone 有多个 SHA 参数要填写,我还没有在 activemerchant 中找到将其放入其中的方法。
有这方面经验的人吗?
2 回答
您收到Merchant not active
错误的原因是您的帐户未配置为能够使用 Direct Link 或其他几个选项。要激活它,您应该获得更高的订阅或联系他们的支持并要求他们为您激活它。
至于 SHA,您需要配置一个秘密密码,通过该密码来分隔您发送的参数。例如:
Passphrase: ogonepass123
Post variables: CN=JohnDoeogonepass123AMOUNT=1000ogonepass123CURRENCY=EURogonepass123PSPID=MyPSPID
最终,您将您的帖子变量散列到 SHA-1 并将该密钥添加到您的帖子参数中
....ogonepass123SHASIGN=<40-characters-SHA-key>
通过这种方式,您可以保护您的数据并确保没有人可以篡改这些变量。
还要确保当您收到 Ogone 的响应时,您使用他们发送给您的参数重新形成 SHA 哈希,然后将这个自己形成的 SHA 哈希与 Ogone 发送给您的哈希进行比较。如果这两个匹配,您可以确定参数没有被弄乱。
希望这对您或遇到此问题的其他人有所帮助。
要使用在 2010 年 1 月 10 日之后创建的帐户使用 Ogone Direct Link,您将需要此补丁:https ://github.com/Shopify/active_merchant/pull/85 (这也适用于在此日期之前创建的帐户。)
这还将为您提供有关别名使用的更多详细信息,解决来自 Ogone 的新更新的一些问题,...确保阅读 ogone 网关代码中的内联文档:https ://github.com/ZenCocoon/active_merchant/blob /master/lib/active_merchant/billing/gateways/ogone.rb
到今天为止,SHA1 受支持并可以使用。