sifangpay/app/Http/Controllers/Admin/ZhanxinController.php

194 lines
5.5 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Models\Bank;
use App\Models\Gateway;
use App\Models\UploadQrcode;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\URL;
use Ixudra\Curl\Facades\Curl;
class ZhanxinController extends BaseDefaultController
{
public function setPagesInfo()
{
$this->pages = [
'name' => '展信支付'
];
}
public function postDataDb($request, $id = '')
{
$data = $request->all();
return $data;
}
public function beforeStore($request)
{
$data = $request->all();
$has_order = (new UploadQrcode())::where('uid', $data['uid'])->first();
if ($has_order) {
return response()->json([
'error' => 1,
'msg' => '用户id已存在'
]);
}
}
public function beforeSave($request,$id)
{
$data = $request->all();
$has_order = (new UploadQrcode())::where('id', $id)->first();
if ($has_order->uid != $data['uid']) {
return response()->json([
'error' => 1,
'msg' => '用户id错误'
]);
}
}
public function checkRule( $id='')
{
if (!$id) {
return [
'username' => 'required',
'introduce' => 'required',
'uid'=> 'required',
'money'=> 'required',
];
}
return [
'username' => 'required',
'introduce' => 'required',
'uid'=> 'required',
'money'=> 'required',
];
}
public function setErrorMsg(){
$messages = [
];
return $messages;
}
public function shareData($id = '')
{
$data=[
];
return $data;
}
public function saveAfter($request, $model, $id = '')
{
// write_gateway();//写入配置文件
}
protected function afterStore($request){
$chanxinconfig = config('qrcodeurl.zhanxin');
$data = [
'userId' => intval($request->uid), 'name' => $request->username,
'url' => $chanxinconfig['notify_url'] . $chanxinconfig['notify'], 'ts' => strval(time())
];
$sinpa = [
'uid' => $request->uid,
'ts' => $data['ts']
];
$str = '';
foreach ($sinpa as $k => $v) {
$str .= '&' . $k . '=' . $v;
}
$str = trim($str, '&');
$data['key'] = strtolower(md5($str . '&' . $chanxinconfig['secret']));
Log::channel('zhanxin')->info('请求数据', $data);
$res = $this->posturl($chanxinconfig['baseurl'] . $chanxinconfig['add'], $data);
$resArr = json_decode($res, true);
Log::channel('zhanxin')->info('返回数据', is_array($resArr) ? $resArr : []);
return $resArr;
}
private function posturl($url, $data = [])
{
$data = (is_array($data)) ? json_encode($data, JSON_UNESCAPED_UNICODE) : $data;
$headerArray = array("Content-type:application/json;charset='utf-8'", "Accept:application/json");
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headerArray);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
//通道写入文件
function write_gateway()
{
$arr = [];
$config2 = \App\Models\UploadQrcode::get()->toArray();
$config2 = data_to_key($config2, 'id');
$data['config'] = $config2;
$data = $data + $arr;
$file = to_linux_path(config_path()) . '/gateway.php';
$content = "<?php\n return " . var_export($data, true) . "\n?>";
file_put_contents($file, $content);
}
public function setModel()
{
$upload = new UploadQrcode(['upload_user' => admin('id')]);
return $upload;
}
public function apiJson(Request $request)
{
$offset = $request->input('page', 1);
$pagesize = $request->input('limit', 1);
$offset = ($offset - 1) * $pagesize;
$order_id = $request->input('sort', 'client_type');
$order_type = $request->input('order', 'desc');
$debug = $request->input('debug', 0);
$model = $this->setModel();
$search_arr=[
];
$model=$this->searchKey($model,$search_arr);
$total = $model->count();
$result = $model->skip($offset)->orderBy('id', $order_type)->orderBy('id', 'desc')->take($pagesize)->get();;
$narr = array();
foreach ($result as $k => $v) {
$v['edit_url']=action($this->route['controller_name'] . '@edit', ['id' => $v->id]);
$v['edit_post_url']=action($this->route['controller_name'] . '@update', ['id' => $v->id]);
$v['thumb']=picurl($v['thumb']);
$narr[] = $v;
}
$json = [
"status"=>1,
'code'=>$total>0?0:1,
'msg'=>$total>0?'请求数据成功':'暂无数据',
'count' => $total,
'data' => $narr
];
if ($debug) {
return $this->jsonDebug($json);
}
return response()->json($json);
}
}