Viewing file: Payment.php (3.48 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Controllers;
use App\Libraries\Shopier;
class Payment extends BaseController { public function createPayment() { if (!user()) { return redirect()->to('/login'); } $isBank = $this->request->getPost('bank') == 'yes'; $amount = $this->request->getPost('amount'); $ad = $this->request->getPost('ad'); $paymentDb = db('payments');
if ($isBank) { //Banka Hesabını kontrol et -> payments tablosuna kaydet $bank = $this->request->getPost('bankAccount'); $bank = db('banks')->where('id', $bank)->get()->getResultArray()[0]; $paymentDb->insert([ 'user' => user()['id'], 'amount' => $amount, 'type' => 'bank', 'bank' => "{$bank['name']} | {$bank['number']}", 'status' => 0, 'ad' => $ad, 'created_at' => time() ]); $paymentId = $paymentDb->db()->insertID();
return $this->response->setJSON([ 'type' => 'success', 'message' => 'Ödeme bildirimi oluşturuldu. Kontrolün ardından bakiyeniz yansıyacaktır.', 'redirect' => base_url('panel/balance') ]); } else { $Shopier = new Shopier(); $name = explode(" ", user()["name"]); $fname = $name[0]; $lname = count($name) > 1 ? $name[1] : "A"; $Shopier->setBuyer([ 'id' => user()["id"], 'first_name' => $fname, 'last_name' => $lname, 'email' => user()['email'], 'phone' => $this->request->getPost('number') ]);
$Shopier->setOrderBilling([ 'billing_address' => "İstanbul Kadiköy", 'billing_city' => "İstanbul", 'billing_country' => "Türkiye", 'billing_postcode' => "340001", ]);
$Shopier->setOrderShipping([ 'shipping_address' => "İstanbul Kadiköy", 'shipping_city' => "İstanbul", 'shipping_country' => "Türkiye", 'shipping_postcode' => "340001", ]); $paymentDb->insert([ 'user' => user()['id'], 'amount' => $amount, 'type' => 'online', 'bank' => '', 'status' => 0, 'created_at' => time() ]); $paymentId = $paymentDb->db()->insertID();
$callback_url = base_url('panel/callback');
die($Shopier->run($paymentId, $amount, $callback_url)); } }
public function shopier_callback() { $Shopier = new Shopier(); if ($Shopier->verifyShopierSignature($this->request->getPost())) { $payment = db('payments')->where('id', $this->request->getPost('platform_order_id'))->get()->getResultArray()[0]; if ($payment && $payment['status'] == '0') { $user = db('users')->where('id', $payment['user'])->get()->getResultArray()[0]; if ($user) { db('users')->where('id', $payment['user'])->update([ 'balance' => floatval($user['balance']) + floatval($payment['amount']) ]); db('payments')->where('id', $payment['id'])->update(['status' => "1"]); } } } return redirect()->to('/panel');
} }
|