0

任何人都可以帮助配置它现在做我的坚果。

这将很有用:https ://developers.fortumo.com/cross-platform-mobile-payments/

我有密钥并设置了小部件,我只需要将这些内容添加到我的数据库中,例如查询中的硬币 + 1,但插入成功支付位的代码不会运行。所以是时候重新开始新鲜了。

任何帮助将不胜感激。

<?php

  // check that the request comes from Fortumo server
  if(!in_array($_SERVER['REMOTE_ADDR'],
array('1.2.3.4', '2.3.4.5'))) {
header("HTTP/1.0 403 Forbidden");
die("Error: Unknown IP");
  }

  // check the signature
  $secret = ''; // insert your secret between ''
  if(empty($secret) || !check_signature($_GET, $secret)) {
header("HTTP/1.0 404 Not Found");
die("Error: Invalid signature");
      }

  $sender = $_GET['sender'];//phone num.
  $amount = $_GET['amount'];//credit
  $cuid = $_GET['cuid'];//resource i.e. user
  $payment_id = $_GET['payment_id'];//unique id
  $test = $_GET['test']; // this parameter is present only when the payment is a test payment, it's value is either 'ok' or 'fail'

  //hint: find or create payment by payment_id
  //additional parameters: operator, price, user_share, country

  if(preg_match("/completed/i", $_GET['status'])) {
// mark payment as successful
  } 

  // print out the reply
  if($test){
echo('TEST OK');
  }
  else {
echo('OK');
  }

  function check_signature($params_array, $secret) {
ksort($params_array);

$str = '';
foreach ($params_array as $k=>$v) {
  if($k != 'sig') {
    $str .= "$k=$v";
  }
}
$str .= $secret;
$signature = md5($str);

return ($params_array['sig'] == $signature);
  }
?>
4

1 回答 1

0

代码示例的第一行验证请求来自 Fortumo IP 地址,如果不是,则脚本终止。

// check that the request comes from Fortumo server
if(!in_array($_SERVER['REMOTE_ADDR'],
    array('1.2.3.4', '2.3.4.5'))) {
    header("HTTP/1.0 403 Forbidden");
    die("Error: Unknown IP");
}

写信给 support@fortumo.com 以获取最新的 IP 地址进行验证(并用它们替换示例值 1.2.3.4)。

同时,您可以注释掉 ip 检查并继续构建您的脚本。

于 2016-04-12T08:10:35.030 回答