Yeni çıkaracağım webscripte Paytr ve shopier entegresi yaptım, paytr düzgün çalışıyor fakat shopierin callbackinde sorun yaşıyorum
CodeIgniter3 frameworkünü kullanıyorum.
Size callback için tuttuğum kodu atıyorum.
public function shopierCallback()
{
if($_POST){
$this->load->model('PaymentM');
$gateway = $this->db->query("SELECT paymentGateway, debugMode FROM Settings")->row_array();
$payment = $this->db->query("SELECT PS.*, S.paymentGateway FROM PaymentSettings PS INNER JOIN Settings S ON S.paymentGateway = PS.id WHERE PS.id = " . $gateway['paymentGateway'])->row_array();
$variables = json_decode($payment['variables'], true);
$shopier = new Shopier($variables['shopierAPIKey'], $variables['shopierAPISecretKey']);
if($shopier->verifyShopierSignature($_POST)){
$paymentHistory = $this->db->where("paymentID", $_POST['platform_order_id'])->get("PaymentHistory")->row_array() or $paymentHistory = false;
if($paymentHistory && $paymentHistory['status'] == 0) {
$data = explode('_', $_POST['platform_order_id']);
$accountID = (int) $data[0];
$amount = (int) $data[1];
completePayment($accountID, $amount, $_POST['platform_order_id']);
$this->PaymentM->addBalance($accountID, $amount);
$this->PaymentM->statusUpdate($_POST['platform_order_id'], '1');
}
}else {
die('Shopier notification failed: bad hash');
}
}
}kod böyle.completePayment fonksiyonu:
function completePayment($accountID, $amount, $paymentID)
{
$a = get_instance();
$query = $a->db->where("paymentID", $paymentID)->get("PaymentHistory");
$exist = $query->num_rows();
if($exist > 0){
$a->db->where('id', $accountID)->update('Accounts', array('balance' => 'balance+'.$amount));
$a->db->where('paymentID', $paymentID)->update('PaymentHistory', array('status' => '1'));
if($a->db->affected_rows() > 0) {
redirect(base_url('/bakiye/basarili'));
}else {
redirect(base_url('/bakiye/basarisiz'));
}
}
}birisi ödeme yaptığında veritabanından ne status'u 1 yapıyor ne de kullanıcıya kredisi ekleniyor.Duyduğuma göre shopierin callback'i farklıymış fakat bu konuda tecrübesi olan veya bilgisi olan varsa lütfen yardımcı olabilir mi? teşekkür ederim.