Доброго времени суток!
Прошу вас помочь с проблемой.
Суть: У меня на сайте есть модуль для приема оплаты в BTC... Кошелёк он генерирует, но транзакцию не добавляет, но деньги приходят на мой кошелек(это работает)
Почему он не добавляет транзакцию? Да и как в целом можно улучшить код?
UserController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use DB;
use Request;
use Cookie;
class UserController extends Controller
{
public function main(){
if(!Cookie::get('auth')){
return redirect('/login');
}else{
$id = strval(strip_tags((Cookie::get('auth'))));
$users = DB::select('select * from `users` where id = ?',[$id]);
if(count($users) > 0){
$user = json_decode(json_encode($users[0]), true);
if(count($user) > 0 and intval($user['activation']) == 0){
$admins = DB::select('select * from `admin`');
$admin = json_decode(json_encode($admins[0]), true);
$sale = $this->fromTo(floatval($admin['sale']));
if(!Cookie::get('address')){
// Get contents
$my_callback_url = urlencode('http://'.$_SERVER['HTTP_HOST'].'/payment_check/panin228?id='.$id);
$root_url = "https://api.blockchain.info/v2/receive?xpub=xpub6D8hg1pk6Jsw2VahsQufyJU9fyuDwrjE36oewoga8pyMT12q91Qrz1cUoH2UkzwzwjHREqB9778QsZDiUs37LFVw86BTrMuDArS5D2T4Lok&callback=$my_callback_url&key=41676b0e-8fb5-4796-a914-63f6b4d11be6";
$response = $this->getData($root_url) or die(print_r(error_get_last()));
$wallet = json_decode($response, true);
$message = (array_key_exists('message', $wallet)) ? true : false;
if($message == false){
$address = strval($wallet['address']);
Cookie::queue('address', $address, 7);
return view('pages/active', ['address' => $address, 'sale' => $sale]);
}else{
return $wallet['message'];
}
}else{
$address = Cookie::get('address');
return view('pages/active', ['address' => $address, 'sale' => $sale]);
}
}else{
if(count($user) > 0){
return view('profile_main', ['title' => 'Private office', 'user' => $user]);
}
}
}
}
}
public function active_post(){
if(!Cookie::get('auth')){
return redirect('/login');
}else{
$id = strval(strip_tags((Cookie::get('auth'))));
// Id
$admins = DB::select('select * from `admin`');
$admin = json_decode(json_encode($admins[0]), true);
$sale = $this->fromTo(floatval($admin['sale']));
// /Sale
$trans = DB::select('select * from `payments` where secret = ?', [$id]);
if(count($trans) > 0){
$tran = json_decode($trans[0], true);
$add = $tran['value'];
$activate = DB::update('update `users` set balance = ? where id = ?', [$add, $id]);
if(count($tran) > 0 && $activate){
// Update balance
$users = DB::select('select * from `users` where id = ?', [$id]);
$user = json_decode(json_encode($users[0]), true);
if(intval($user['activation']) == 1){
return redirect('/profile');
}else{
$balance = floatval($user['balance']);
if($balance >= $sale){
$activate = DB::update('update `users` set activation = 1 where id = ?', [$id]);
if($activate){
return redirect('/profile');
}
}else{
exit('Платеж меньше нужно суммы...');
}
}
}else{
exit('Не удалось найти платеж...');
}
}else{
exit('Не удалось найти транзакции...');
}
}
}
public function payment($secret){
if($secret == 'panin228'){
$get = Request::all();
$transaction_hash = $get['transaction_hash'];
$value_in_satoshi = floatval($get['value']);
$value_in_btc = $value_in_satoshi / 100000000;
$sql = 'insert into `payments` (secret, transaction_hash, value) values(?, ?, ?)';
$secret2 = intval($get['id']);
$ins = DB::insert($sql, [$secret2, $transaction_hash, $value_in_btc]);
if($ins){
echo "*ok*";
}
}
}
public function logout(){
if(!Cookie::get('auth')){
Cookie::queue('auth', 0, 0);
return redirect('/login');
}else{
return redirect('/login');
}
}
public function getData($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
public function fromTo($value_in_usd){
$btc = file_get_contents("https://blockchain.info/tobtc?currency=USD&value=$value_in_usd");
$btc = floatval($btc);
return $btc;
}
}
Сам сайт: tyte.ru
Форма для регистрации: tyte.ru/reg/test