我们如何将Instamojo与Codeigniter集成

时间:2019-09-10 10:42:14

标签: php codeigniter instamojo

将数据保存到数据库中时遇到错误,因为webhook(instamojo)url无法与我的代码一起使用。

我们如何重定向到webhook页面以及codeigniter框架的webhook格式是什么。

我正在使用instamojo付款网关

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://test.instamojo.com/api/1.1/payment-requests/');
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER,  array("X-Api-Key:test_12345", "X-Auth-Token:test_asbcs"));
$payload = Array(
  'purpose' => $username,
  'amount' => $this->input->post('amount'), 
  'phone' => , 
  'buyer_name' => $username,
  'redirect_url' => 'url',
  'send_email' => true,
  'webhook' => 'url',
  'send_sms' => true,
  'email' => $this->input->post('email'),  
  'allow_repeated_payments' => false,
);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($payload));
$response = curl_exec($ch);
curl_close($ch); 
$json_decode = json_decode($response, true);
$long_url = $json_decode['payment_request']['longurl'];
header('Location:'.$long_url);

这是我在webhook页面中使用的webhook代码。请帮我解决这个问题。预先感谢

$data = $_POST;
$mac_provided = $data['mac'];
unset($data['mac']);
$ver = explode('.', phpversion());
$major = (int) $ver[0];
$minor = (int) $ver[1];
if($major >= 5 and $minor >= 4){
  ksort($data, SORT_STRING | SORT_FLAG_CASE);
} else {
  uksort($data, 'strcasecmp');
}
$mac_calculated = hash_hmac("sha1", implode("|", $data), "salt key");
if($mac_provided == $mac_calculated){
  if($data['status'] == "Credit"){
    database query ---
    return true;
  } else{
    return false;
  }
} else{ 
  return false;
}

0 个答案:

没有答案