194 lines
5.5 KiB
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);
|
|
}
|
|
}
|