安全

确保您的后端服务发货逻辑只被 fortumo 使用而不是未授权的第三方是极其重要的。 fortumo 提供以下几种安全措施能够满足您的安全需求:

  • 第一, 检查来访的 IP 地址是否来自 Fortumo 的服务器。 具体 IP 地址请联系我们技术支持 电子邮件地址 support@fortumo.com 我们如果改变我们的IP 地址,我们会马上通过 e-mail 通知您的。 如果您使用 PHP, 您可以使用变量 $\_SERVER["REMOTE_ADDR"] 去查询来访地址。
  • 第二, 使用一个难以猜测的名字去命名您的 http 接口地址。 比如说 https://yourdomain.com/fortumo.php 在安全性上就不如 https://yourdomain.com/go850g3oigjrtog/payment-processor.php.
  • 第三,检查所带 signature 是否符合。 所有付款结果通知来访都必须签上您 service 的 secret。 这个 secret 的数值只有您和 Fortumo 知道。
  • 第四,检查是否付款是否属实,和确认 HTTP 参数中无参数test。

安全签名

这个安全签名的数值可以从在sig http 参数读取。 这个安全签名的数值的计算方法是将所有的 fortumo 设置(不包括您外加的特殊参数)参数按 alphabetic order 排序然后 concatenate 在一起,再在尾部 concatenate secret 值。 最后将整个 string 作为 input 去计算 md5 checksum。 您能在您的 Fortumo.com service Dashboard. 的 service settings 栏下查找您的 service secret 的数值。 您可通过同样的计算方法去检查来访的身份是否授权。

在计算安全签名的数值之前:

  • 一定要将所有的 fortumo 设置(不包括您外加的特殊参数)参数按 alphabetic order 排序。
  • 对参数值必须进行 URL decode (比如说 callback_url )。 在组成 payment URL 之前,对参数要进行 url encode 处理。

例子

1
2
3
4
5
6
7
8
9
10
11
12
PARAMETERS
credit_name = gold
tc_amount = 3333
tc_id = 291
test = ok
secret = bad54c617b3a51230ac7cc3da398855e

CALCULATION STRING
credit_name=goldtc_amount=3333tc_id=291test=okbad54c617b3a51230ac7cc3da398855e

MD5 RESULT AS SIGNATURE
sig = 047f555536f8826825c9079265ad36de

千万不要 暴露 您的 service secret, 否则会发生用户自改参数未授权的情况下得到虚拟货币或道具.

Help us improve our Merchants Portal. Was this article helpful?