From 95200f1c5ad9fcf9f8ab3cf805d2d16be4aad6ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9Cwanyongkang=E2=80=9D?= <“937888580@qq.com”>
Date: Tue, 26 Dec 2023 16:37:09 +0800
Subject: [PATCH] =?UTF-8?q?http=E4=B8=8A=E7=BA=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/common/controller/Alipay.php | 51 ++++
app/common/controller/Wxpay.php | 46 ++++
app/http/controller/Order.php | 425 +++++++++++++++++++++++++++++++
app/http/controller/Product.php | 88 +++++++
app/http/controller/User.php | 397 +++++++++++++++++++++++++++++
app/http/model/Order.php | 9 +
app/http/model/Package.php | 78 ++++++
app/http/model/Recharge.php | 9 +
app/http/model/User.php | 33 +++
enum/http/Order.php | 60 +++++
extends/alipay/Alipay.php | 33 ++-
extends/wechatpay/Wxpay.php | 17 ++
fastphp/func/common.php | 26 +-
13 files changed, 1269 insertions(+), 3 deletions(-)
create mode 100644 app/http/controller/Order.php
create mode 100644 app/http/controller/Product.php
create mode 100644 app/http/controller/User.php
create mode 100644 app/http/model/Order.php
create mode 100644 app/http/model/Package.php
create mode 100644 app/http/model/Recharge.php
create mode 100644 app/http/model/User.php
create mode 100644 enum/http/Order.php
diff --git a/app/common/controller/Alipay.php b/app/common/controller/Alipay.php
index c52dc17..cdc64eb 100644
--- a/app/common/controller/Alipay.php
+++ b/app/common/controller/Alipay.php
@@ -4,6 +4,8 @@ namespace app\common\controller;
use extend\alipay\Alipay as AlipaySdk;
use app\ros\model\Order as OrderModel;
+use app\http\model\User as UserModel;
+use app\http\model\Recharge as RechargeModel;
class Alipay {
@@ -55,4 +57,53 @@ class Alipay {
echo 'success';
}
+ public function httpalipayVerify() {
+
+ $ali = new AlipaySdk();
+
+ $flag = $ali->payVerify2($_POST);
+
+ if($flag){
+
+ $status = $_POST['trade_status'];
+
+ $flag = false;
+
+ if ($status == 'TRADE_SUCCESS' && $_POST['auth_app_id'] == '2021002102631089' && $_POST['seller_id'] = '2088431603383955') {
+ $flag = true;
+ }
+
+ if ($flag) {
+
+ $recharge_model = new RechargeModel();
+ $order_no=$_POST['out_trade_no'];
+ $alipay_no = $_POST['trade_no'];
+
+
+
+ //获取充值信息
+ $order_info = $recharge_model->getOne(['order_no'=>$order_no]);
+
+ if (!empty($order_info['ali_wx_no'])) {
+ die;
+ }
+
+ $update_data = [];
+
+ //更新充值订单
+ $update_data['ali_wx_no'] = $alipay_no;
+ $update_data['pay_status'] = 1;
+ if($recharge_model->updateOne(['order_no'=>$order_no],$update_data)) {
+ $user_model = new UserModel();
+ $user_info = $user_model->getOne(['Id' => $order_info['user_id']]);
+ $user_update = [];
+ $user_update['ju_money'] = $user_info['ju_money'] + $order_info['ju_money'];
+ $user_model->updateOne(['Id'=>$order_info['user_id']],$user_update);
+ }
+ }
+ }
+
+ echo 'success';
+ }
+
}
\ No newline at end of file
diff --git a/app/common/controller/Wxpay.php b/app/common/controller/Wxpay.php
index 7dc648b..176bff2 100644
--- a/app/common/controller/Wxpay.php
+++ b/app/common/controller/Wxpay.php
@@ -3,6 +3,8 @@
namespace app\common\controller;
use app\ros\model\Order as OrderModel;
+use app\http\model\User as UserModel;
+use app\http\model\Recharge as RechargeModel;
class Wxpay {
@@ -41,6 +43,50 @@ class Wxpay {
$order_model->updateOne(['order_no'=>$order_no],$update_data);
+ //处理完成之后,告诉微信成功结果
+ echo '
+
+
+ ';
+ exit();
+ }
+ }
+
+ public function httpwxpayVerify() {
+
+
+ //接收数据
+ $xmlData = file_get_contents('php://input');
+ libxml_disable_entity_loader(true);
+ $data = json_decode(json_encode(simplexml_load_string($xmlData, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
+
+ $order_model = new RechargeModel();
+ $order_no = $data['out_trade_no'];
+ $wx_no = $data['transaction_id'];
+
+ //获取充值信息
+ $order_info = $order_model->getOne(['order_no'=>$order_no]);
+
+ if (!empty($order_info['ali_wx_no'])) {
+ die;
+ }
+
+ //判断算出的签名和通知信息的签名是否一致
+ if($data['result_code'] == 'SUCCESS' && $data['appid'] == 'wx18e5b4f42773c3ec' && $data['mch_id'] == '1571608411'){
+
+ $update_data = [];
+
+ //更新充值订单
+ $update_data['ali_wx_no'] = $wx_no;
+ $update_data['pay_status'] = 1;
+ $order_model->updateOne(['order_no'=>$order_no],$update_data);
+ $user_model = new UserModel();
+ $user_info = $user_model->getOne(['Id' => $order_info['user_id']]);
+ $user_update = [];
+ $user_update['ju_money'] = $user_info['ju_money'] + $order_info['ju_money'];
+ $user_model->updateOne(['Id'=>$order_info['user_id']],$user_update);
+
+
//处理完成之后,告诉微信成功结果
echo '
diff --git a/app/http/controller/Order.php b/app/http/controller/Order.php
new file mode 100644
index 0000000..6b76611
--- /dev/null
+++ b/app/http/controller/Order.php
@@ -0,0 +1,425 @@
+ 50,
+ '200' => 210,
+ '500' => 550,
+ '1000' => 1150,
+ '2000' => 2400,
+ '5000' => 6250,
+ '10000' => 13000,
+ ];
+ // private $url_root = 'https://sandbox.sgxz.cn';
+ private $url_root = 'https://merchant.sgxz.cn';
+
+ private $http_user_info = [];
+
+ public function __construct()
+ {
+ parent::__construct('','');
+ if (empty($this->userinfo['UserId'])) {
+ die;
+ }
+
+ $user_model = new UserModel;
+ $this->http_user_info = $user_model->get_http_user($this->userinfo['UserId']);
+
+ if ($this->http_user_info['is_verify'] == 0) {
+ $return_data = [
+ 'code'=>-1,
+ 'data' => '非法参数',
+ 'msg' => '未实名,请先实名!'
+ ];
+ echo json_encode($return_data);
+ die;
+ }
+ }
+ //创建订单
+ public function create_order(){
+ $data = json_decode(file_get_contents("php://input"),true)['order_info'];
+
+
+ $data['money'] = abs($data['money']);
+ $return_data = [];
+ switch ($data['order_type']) {
+ case 1:
+ $return_data = $this->recharge($data,HttpOrderEnum::$charge,$this->url_root.'/plan/recharge/place/order');
+ break;
+ case 2:
+ $return_data = $this->dxwxl($data,HttpOrderEnum::$new,$this->url_root.'/plan/unlimited/place/order');
+ break;
+ case 3:
+ $return_data = $this->dxbt($data,HttpOrderEnum::$new,$this->url_root.'/plan/period/place/order');
+ break;
+ case 4:
+ $return_data = $this->dxbl($data);
+ break;
+ case 5:
+ $return_data = $this->game($data,HttpOrderEnum::$new,$this->url_root.'/plan/long/place/order');
+ break;
+
+ }
+ echo json_encode($return_data);
+ }
+
+ //续费
+ public function rebuy_order(){
+ $data = json_decode(file_get_contents("php://input"),true)['order_info'];
+
+ $data['money'] = abs($data['money']);
+ unset($data['data']['title']);
+
+ $return_data = [];
+ switch ($data['order_type']) {
+ case 2:
+ $return_data = $this->dxwxl($data,HttpOrderEnum::$rebuy,$this->url_root.'/user/pack/renew');
+ break;
+ case 3:
+ $return_data = $this->dxbt($data,HttpOrderEnum::$rebuy,$this->url_root.'/user/pack/renew');
+ break;
+ case 5:
+ unset($data['data']['ids']);
+ $return_data = $this->game($data,HttpOrderEnum::$rebuy,$this->url_root.'/user/pack/renew');
+ break;
+ case 6:
+ $return_data = $this->game($data,HttpOrderEnum::$rebuy,$this->url_root.'/user/long/ip/renew');
+ break;
+
+ }
+ echo json_encode($return_data);
+ }
+ //充值
+ private function recharge($data) {
+
+ $data['money'] = abs($data['money']);
+ $recharge_model = new RechargeModel;
+ $recharge_data = [];
+ $recharge_data['pay_money'] = $data['money'];
+ $recharge_data['user_id'] = $this->userinfo['UserId'];
+
+ //判断充值的金额是否在赠送列表里
+ if (in_array($recharge_data['pay_money'],$this->ju_zhengsong)){
+ $recharge_data['ju_money'] = $this->ju_zhengsong[$data['money']];
+ } else {
+ die;
+ }
+ $recharge_data['pay_type'] = $data['pay_type'];
+ $recharge_data['order_no'] = md5(time());
+ $recharge_data['pay_status'] = 0;
+
+ $recharge_model->add($recharge_data);
+
+ //支付宝
+ if ($data['pay_type'] == 2) {
+ $param = [
+ 'out_trade_no' => $recharge_data['order_no'],
+ 'total_amount' => $data['money'],
+ 'subject' => 'HTTP充值',
+ 'product_code' => 'FAST_INSTANT_TRADE_PAY',
+ 'timeout_express' => '30m',
+ ];
+
+
+ $pay_html = Alipay::pay_http($param);
+ $info = [
+ 'code'=>2,
+ 'data' => $pay_html
+ ];
+ return $info;
+ }
+ //微信
+ if ($data['pay_type'] == 3) {
+ //微信支付
+ $wxpay = new Wxpay();
+
+ $param = [
+ 'username' => $this->userinfo['LoginName'],
+ 'money' => $data['money']*100,
+ 'order_no' => $recharge_data['order_no'],
+ ];
+ $url = $wxpay->http_pay($param);
+
+ $info = [
+ 'code'=>3,
+ 'data' => $url
+ ];
+ return $info;
+ }
+ $info = [
+ 'code'=>-1,
+ 'data' => '非法参数'
+ ];
+ return $info;
+ }
+
+ //短效无限量
+ private function dxwxl($data, $order_type=1,$url='') {
+
+ $order_data = [
+ 'user_id' => $this->http_user_info['Id'],
+ 'order_type' => $order_type,
+ 'package_type' => HttpOrderEnum::$dxwxl,
+ 'durationType' => isset($data['data']['durationType'])?$data['data']['durationType']:'',
+ 'order_status' => HttpOrderEnum::$pay_yes,
+ 'money' => $data['money']
+ ];
+ if ($order_type == 2) {
+ unset($data['data']['durationType']);
+ }
+ $request_data = $data['data'];
+ $request_data['sgUserId'] = $this->http_user_info['sgUserId'];
+
+ return $this->order_format($data,$order_data,$request_data,$url);
+ }
+
+ //短效包天
+ private function dxbt($data,$order_type=1,$url='') {
+ $order_data = [
+ 'user_id' => $this->http_user_info['Id'],
+ 'order_type' => $order_type,
+ 'package_type' => HttpOrderEnum::$dxbt,
+ 'durationType' => isset($data['data']['durationType'])?$data['data']['durationType']:'',
+ 'order_status' => HttpOrderEnum::$pay_yes,
+ 'money' => $data['money']
+ ];
+ if ($order_type == 2) {
+ unset($data['data']['durationType']);
+ }
+ $request_data = $data['data'];
+ $request_data['sgUserId'] = $this->http_user_info['sgUserId'];
+ return $this->order_format($data,$order_data,$request_data,$url);
+ }
+
+ //短效包量
+ private function dxbl($data) {
+ $order_data = [
+ 'user_id' => $this->http_user_info['Id'],
+ 'order_type' => HttpOrderEnum::$new,
+ 'package_type' => HttpOrderEnum::$dxbl,
+ 'durationType' => $data['data']['durationType'],
+ 'order_status' => HttpOrderEnum::$pay_yes,
+ 'money' => $data['money']
+ ];
+
+ $request_data = $data['data'];
+ $request_data['sgUserId'] = $this->http_user_info['sgUserId'];
+ return $this->order_format($data,$order_data,$request_data,$this->url_root.'/plan/usage/place/order');
+ }
+
+ //长效游戏
+ private function game($data,$order_type=1,$url='') {
+ if (isset($data['data']['isAbroad'])) {
+ if($data['data']['isAbroad'] == '国内') {
+ $data['data']['isAbroad'] = 0;
+ } else if($data['data']['isAbroad'] == '国外') {
+ $data['data']['isAbroad'] = 1;
+ }
+ }
+ $order_data = [
+ 'user_id' => $this->http_user_info['Id'],
+ 'order_type' => $order_type,
+ 'package_type' => HttpOrderEnum::$cxyx,
+ 'game_type' => isset($data['data']['isAbroad'])?isset($data['data']['isAbroad']):'',
+ 'ip_count' => $data['data']['ipAmount'],
+ 'order_status' => HttpOrderEnum::$pay_yes,
+ 'money' => $data['money']
+ ];
+ // if ($order_type == 2) {
+ // unset($data['data']['isAbroad']);
+ // unset($data['data']['ipAmount']);
+ // }
+
+ $request_data = $data['data'];
+ $request_data['sgUserId'] = $this->http_user_info['sgUserId'];
+
+ return $this->order_format($data,$order_data,$request_data,$url);
+ }
+
+ //获取更换ip的城市列表
+ public function get_change_ip_city() {
+ $data = json_decode(file_get_contents("php://input"),true);
+ $url = $this->url_root.'/user/long/ip/relate/cities';
+
+ unset($data['cookie']);
+
+ $data['sgUserId'] = $this->http_user_info['sgUserId'];
+ $request_data = formatHttpRequert($data);
+
+ echo(linkcurl($url,'POST',$request_data,[],0));
+ }
+ //更换ip订单
+ public function change_ip_order() {
+ $data = json_decode(file_get_contents("php://input"),true)['order_info'];
+ $url = $this->url_root.'/user/long/ip/switch';
+ $package_model = new PackageModel;
+
+ $data['data']['order_type'] = 6;
+
+ $price = $package_model->get_price($data['data']);
+
+ $data['money'] = round(($data['data']['data']['periodAmount'] * $price['price'] * $data['data']['data']['ipAmount']),2);
+
+ unset($data['data']['data']);
+ unset($data['data']['order_type']);
+
+
+ $order_data = [
+ 'user_id' => $this->http_user_info['Id'],
+ 'order_type' => HttpOrderEnum::$change_ip,
+ 'package_type' => HttpOrderEnum::$cxyx,
+ 'order_status' => HttpOrderEnum::$pay_yes,
+ 'ip_count' => 1,
+ 'game_type' => isset($data['data']['isAbroad'])?isset($data['data']['isAbroad']):'',
+ 'money' => $data['money']
+ ];
+ unset($data['data']['cookie']);
+ unset($data['data']['title']);
+ unset($data['data']['isAbroad']);
+
+ $request_data = $data['data'];
+ $request_data['sgUserId'] = $this->http_user_info['sgUserId'];
+
+ $return_data = $this->order_format($data,$order_data,$request_data,$url);
+ echo json_encode($return_data);
+ }
+
+ private function order_format($data,$order_data,$request_data,$http_url) {
+
+ //去掉切换ip的价格计算,在上一步计算
+ if ($order_data['order_type'] != HttpOrderEnum::$change_ip) {
+
+ $package_model = new PackageModel;
+
+ $price = $package_model->get_price($data);
+
+ switch ($data['order_type']) {
+ case 2:
+ $data['money'] = round($data['data']['periodAmount'] * $price['price'],2);
+ break;
+ case 3:
+ $data['money'] = round(($data['data']['periodAmount'] * $price['price'] * $data['data']['ipAmount']),2);
+ break;
+ case 5:
+ case 6:
+ $data['money'] = round(($data['data']['periodAmount'] * $price['price'] * $data['data']['ipAmount']),2);
+ break;
+
+ }
+ }
+
+
+ $data['money'] = abs($data['money']);
+
+ if ($this->http_user_info['ju_money'] >= $data['money']) {
+ $ju_money = $this->http_user_info['ju_money'] - $data['money'];
+ $user_update_data['ju_money'] = $ju_money;
+
+ $where = [
+ 'Id' => $this->userinfo['UserId'],
+ 'ju_money' => $this->http_user_info['ju_money']
+ ];
+
+ $user_model = new UserModel;
+ if($user_model->updateOne($where,$user_update_data)) {
+ $order_model = new OrderModel;
+
+ $order_data['order_no'] = md5(time());
+
+ if ($order_model->add($order_data)) {
+ $url = $http_url;
+
+ $request_data = formatHttpRequert($request_data);
+
+ $http_data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+
+ if ($http_data->s < 0) {
+ $info = [
+ 'code'=>-1,
+ 'data' => '非法参数',
+ 'msg' => '请求后台失败,请联系客服!'
+ ];
+ return $info;
+ } else {
+ $request_order_data = [
+ 'sgUserId' => $this->http_user_info['sgUserId'],
+ 'orderId' => $http_data->d->orderId,
+ 'orderType' => $http_data->d->orderType,
+ ];
+
+ //支付订单
+ $order_url = $this->url_root.'/user/order/try/pay';
+
+ $request_order_data = formatHttpRequert($request_order_data);
+
+ $http_order_data = json_decode(linkcurl($order_url,'POST',$request_order_data,[],0));
+
+ if ($http_order_data->s < 0) {
+ $info = [
+ 'code'=>-1,
+ 'data' => '非法参数',
+ 'msg' => '请求后台失败,请联系客服!'
+ ];
+ return $info;
+ } else {
+ $order_update = [
+ 'status' => 1,
+ 'order_id' => $http_order_data->d->orderId,
+ 'serial' => $http_order_data->d->serial,
+ 'payCash' => $http_order_data->d->payCash,
+ ];
+ $order_id = $order_model->getNewOne('id')['id'];
+ $order_model->updateOne(['id' => $order_id],$order_update);
+ $info = [
+ 'code'=>1,
+ 'data' => '',
+ 'msg' => '操作成功!'
+ ];
+ return $info;
+ }
+ }
+ } else {
+ $info = [
+ 'code'=>-1,
+ 'data' => '非法参数',
+ 'msg' => '请求后台失败,请联系客服!'
+ ];
+ return $info;
+
+ }
+ } else {
+ $info = [
+ 'code'=>-1,
+ 'data' => '非法参数',
+ 'msg' => '聚币不足!'
+ ];
+ return $info;
+ }
+
+ } else {
+ $info = [
+ 'code'=>-1,
+ 'data' => '非法参数',
+ 'msg' => '聚币不足!'
+ ];
+ return $info;
+ }
+
+ }
+
+
+
+
+}
\ No newline at end of file
diff --git a/app/http/controller/Product.php b/app/http/controller/Product.php
new file mode 100644
index 0000000..f9e28b2
--- /dev/null
+++ b/app/http/controller/Product.php
@@ -0,0 +1,88 @@
+url_root.'/plan/long/assignable/cities';
+
+ $request_data = formatHttpRequert($request_data);
+
+ echo(linkcurl($url,'GET',$request_data,[],0));
+ }
+
+ //查询长效可切换入口城市
+ public function in_city(){
+ $request_data = $_POST['data'];
+ $url = $this->url_root.'/plan/long/assignable/cities';
+
+ $request_data = formatHttpRequert($request_data);
+
+ echo(linkcurl($url,'GET',$request_data,[],0));
+ }
+
+
+ //查询长效可切换出口城市
+ public function out_city(){
+ $request_data = json_decode(file_get_contents("php://input"),true)['data'];
+ $url = $this->url_root.'/plan/long/assignable/cities';
+
+ $request_data = formatHttpRequert($request_data);
+
+ echo(linkcurl($url,'GET',$request_data,[],0));
+ }
+ //查询长效可选游戏
+ public function game(){
+ $request_data = $_POST;
+ $url = $this->url_root.'/plan/long/assignable/games';
+
+ $request_data = formatHttpRequert($request_data);
+
+ echo(linkcurl($url,'GET',$request_data,[],0));
+ }
+ //可选线路数量
+ public function linecount(){
+ $request_data = $_POST;
+ $url = $this->url_root.'/plan/long/assignable/line/count';
+
+ $request_data = formatHttpRequert($request_data);
+
+ echo(linkcurl($url,'GET',$request_data,[],0));
+ }
+
+
+ //计算价格
+ public function calc_price(){
+ $data = $_POST;
+
+ $package_model = new PackageModel;
+
+ $price = $package_model->get_price($data);
+
+ echo json_encode($price);
+ }
+
+}
\ No newline at end of file
diff --git a/app/http/controller/User.php b/app/http/controller/User.php
new file mode 100644
index 0000000..23c08ea
--- /dev/null
+++ b/app/http/controller/User.php
@@ -0,0 +1,397 @@
+userinfo['UserId'])) {
+ die;
+ }
+
+ $user_model = new UserModel;
+ $this->http_user_info = $user_model->get_http_user($this->userinfo['UserId']);
+ }
+
+ //获取聚币余额
+ public function get_balance() {
+ $data = $this->http_user_info['ju_money'];
+ echo json_encode($data);
+ }
+
+ //获取所有充值订单
+ public function charge_list() {
+ $recharge_model = new RechargeModel;
+ $where = [
+ 'user_id' => $this->userinfo['UserId'],
+ 'user_id' => $this->userinfo['UserId'],
+ ];
+
+ $list = $recharge_model->getListPage($where);
+
+ $pay_type = [
+ '2' => '支付宝',
+ '3' => '微信',
+ ];
+
+ foreach ($list as &$info) {
+ $info['pay_type'] = $pay_type[$info['pay_type']];
+ }
+
+ echo json_encode($list);
+ }
+
+ //短效全部套餐
+ public function dx_package() {
+ $request_data = [
+ 'sgUserId' => $this->http_user_info['sgUserId'],
+ ];
+ $url = $this->url_root.'/user/short/pack/list';
+
+ $request_data = formatHttpRequert($request_data);
+
+ $data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+ $list = array_merge($data->d->packs->period,$data->d->packs->unlimited,$data->d->packs->usage);
+
+ foreach ($list as &$info) {
+ $info->name = HttpOrderEnum::$package_type[ $info->planType];
+ $info->durationType2 = $info->durationType;
+ $info->durationType = HttpOrderEnum::$durationType[ $info->durationType];
+ $info->expireTime = date('Y-m-d H:i:s',$info->expireTime);
+ $info->isExpired = $info->isExpired?'已过期':'未过期';
+ $info->ipAmount = $info->ipAmount?:'无限量';
+ $info->remainingAmount = $info->remainingAmount?:'无限量';
+ }
+
+ $return_data = [
+ 'code' => 1,
+ 'data' => $list,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+
+ }
+
+ //短效全部套餐
+ public function dx_order() {
+ $order_model = new OrderModel();
+ $order_where = [
+ 'package_type' => ['in',HttpOrderEnum::$package_list],
+ 'order_status' => HttpOrderEnum::$pay_yes,
+ 'user_id' => $this->userinfo['UserId']
+ ];
+ $order_list = $order_model->getListPage($order_where);
+
+ foreach ($order_list as &$info) {
+ $info['order_type'] = HttpOrderEnum::$order_type[$info['order_type']];
+ $info['package_type'] = HttpOrderEnum::$package_type[$info['package_type']];
+ $info['durationType'] = HttpOrderEnum::$durationType[ $info['durationType']];
+ }
+
+ $return_data = [
+ 'code' => 1,
+ 'data' => $order_list,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+ }
+
+ //用户短效每日使用情况查询
+ public function dx_used() {
+ $request_data = [
+ 'sgUserId' => $this->http_user_info['sgUserId'],
+ ];
+ $url = $this->url_root.'/user/short/ip/used/summary';
+
+ $request_data = formatHttpRequert($request_data);
+
+ $data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+ $return_data = [
+ 'code' => 1,
+ 'data' => $data->d,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+
+ }
+ //用户短效每日使用情况查询
+ public function dx_used_log() {
+
+ $request_data = json_decode(file_get_contents("php://input"),true)['data'];
+
+ $request_data = [
+ 'sgUserId' => $this->http_user_info['sgUserId'],
+ 'page' => isset($request_data['page'])?$request_data['page']:1,
+ 'limit' => 50,
+ 'packType' => $request_data['packType'],
+ ];
+ $url = $this->url_root.'/user/short/ip/used/list';
+
+ $request_data = formatHttpRequert($request_data);
+
+ $data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+
+ foreach ($data->d->items as &$info) {
+ $info->packType = HttpOrderEnum::$package_type[$info->packType];
+ $info->createTime = date('Y-m-d H:i:s',$info->createTime);
+ }
+ $return_data = [
+ 'code' => 1,
+ 'data' => $data,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+
+ }
+
+ //长效ip列表
+ public function lang_ip_list() {
+ $request_data = json_decode(file_get_contents("php://input"),true)['data'];
+ $request_data['sgUserId'] = $this->http_user_info['sgUserId'];
+ $url = $this->url_root.'/user/long/ip/list';
+
+ foreach ($request_data as $key => &$info) {
+ if (strlen($info) == 0) {
+ unset($request_data[$key]);
+ }
+ }
+
+ $request_data = formatHttpRequert($request_data);
+
+ $data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+
+ $line_status = [
+ '1' => '正常',
+ '0' => '异常',
+ '9' => '禁用',
+ ];
+
+ foreach ($data->d->items as &$info) {
+ $info->lineType2 = $info->lineType;
+ $info->lineType = ($info->lineType == 1)?'普通':'优质';
+ $info->expireTime = date('Y-m-d H:i:s',$info->expireTime);
+ $info->shareType2 = $info->shareType;
+ $info->shareType = ($info->shareType == 1)?'共享':'独享';
+ $info->state = $line_status[$info->state];
+ }
+
+ $return_data = [
+ 'code' => 1,
+ 'data' => $data,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+ }
+
+ //长效全部套餐
+ public function cx_package() {
+ $list = [];
+ $request_data = [
+ 'sgUserId' => $this->http_user_info['sgUserId'],
+ ];
+ $url = $this->url_root.'/user/long/pack/list';
+
+ $request_data = formatHttpRequert($request_data);
+
+ $data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+ $list = array_merge($data->d->packs);
+
+ foreach ($list as &$info) {
+ $info->isAbroad2 = $info->isAbroad;
+ $info->isAbroad = HttpOrderEnum::$game_type[ $info->isAbroad];
+ $info->expireTime = date('Y-m-d H:i:s',$info->expireTime);
+ $info->isExpired = $info->isExpired?'已过期':'未过期';
+ $info->shareType = ($info->shareType == 1) ?'共享':'独享';
+ }
+
+ $return_data = [
+ 'code' => 1,
+ 'data' => $list,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+
+ }
+
+ //长效全部订单
+ public function cx_order() {
+ $order_list = [];
+ $order_model = new OrderModel();
+ $order_where = [
+ 'package_type' => HttpOrderEnum::$cxyx,
+ 'order_status' => HttpOrderEnum::$pay_yes,
+ 'user_id' => $this->userinfo['UserId']
+ ];
+ $order_list = $order_model->getListPage($order_where);
+
+ foreach ($order_list as &$info) {
+ $info['order_type'] = HttpOrderEnum::$order_type[$info['order_type']];
+ $info['package_type'] = HttpOrderEnum::$package_type[$info['package_type']];
+ $info['game_type'] = HttpOrderEnum::$game_type[ $info['game_type']];
+ }
+
+ $return_data = [
+ 'code' => 1,
+ 'data' => $order_list,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+ }
+
+ //长效ip切换记录
+ public function cx_switch() {
+ ini_set('display_errors', 'off');
+ $request_data = json_decode(file_get_contents("php://input"),true)['data'];
+
+ $request_data = [
+ 'sgUserId' => $this->http_user_info['sgUserId'],
+ 'page' => isset($request_data['page'])?$request_data['page']:1,
+ 'limit' => 50,
+ ];
+ $url = $this->url_root.'/user/long/switch/ip/log';
+
+ $request_data = formatHttpRequert($request_data);
+
+ $data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+
+ //切换原因,0-系统自动切换,1-失效手动切换,2-免费手动切换,5-管理员免费切换,6-收费手动切换
+ $reason = [
+ 0 => '系统自动切换,1',
+ 1 => '失效手动切换,2',
+ 2 => '免费手动切换',
+ 5 => '管理员免费切换',
+ 6 => '收费手动切换',
+ ];
+
+ foreach ($data->d->items as &$info) {
+ $info->createTime = date('Y-m-d H:i:s',$info->createTime);
+ $info->reason = $reason[$info->reason];
+ }
+
+ $return_data = [
+ 'code' => 1,
+ 'data' => $data,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+ }
+
+ //用户白名单列表
+ public function white_list() {
+ $list = [];
+ $request_data = [
+ 'sgUserId' => $this->http_user_info['sgUserId'],
+ ];
+ $url = $this->url_root.'/user/short/whitelist';
+
+ $request_data = formatHttpRequert($request_data);
+
+ $data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+ $list = $data->d->items;
+
+ foreach ($list as &$info) {
+ $info->isLocked = $info->isLocked?'已锁定':'未锁定';
+ }
+
+ $return_data = [
+ 'code' => 1,
+ 'data' => $list,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+ }
+
+ //用户创建白名单
+ public function create_white_ip() {
+ $request_data = json_decode(file_get_contents("php://input"),true)['data'];
+
+ $request_data['sgUserId'] = $this->http_user_info['sgUserId'];
+
+ $url = $this->url_root.'/user/short/whitelist/create';
+
+ $request_data = formatHttpRequert($request_data);
+
+ $data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+ $return_data = [
+ 'code' => 1,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+ }
+
+ //用户锁定ip
+ public function lock_ip() {
+ $request_data = json_decode(file_get_contents("php://input"),true)['data'];
+
+ $request_data['sgUserId'] = $this->http_user_info['sgUserId'];
+
+ $url = $this->url_root.'/user/short/whitelist/lock';
+
+ $request_data = formatHttpRequert($request_data);
+
+ $data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+ $return_data = [
+ 'code' => 1,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+ }
+
+ //用户删除ip
+ public function delete_ip() {
+ $request_data = json_decode(file_get_contents("php://input"),true)['data'];
+
+ $request_data['sgUserId'] = $this->http_user_info['sgUserId'];
+
+ $url = $this->url_root.'/user/short/whitelist/delete';
+
+ $request_data = formatHttpRequert($request_data);
+
+ $data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+ $return_data = [
+ 'code' => 1,
+ 'msg' => '',
+ ];
+
+ echo json_encode($return_data);
+ }
+
+ //提取长效ip
+ public function get_lang_ip(){
+ $request_data = json_decode(file_get_contents("php://input"),true)['data'];
+ $request_data['ids'] = trim($request_data['ids'],',');
+
+ $request_data['sgUserId'] = $this->http_user_info['sgUserId'];
+ $url = $this->url_root.'/user/long/ip/batch/get';
+
+ $request_data = formatHttpRequert($request_data);
+
+ echo(linkcurl($url,'GET',$request_data,[],0));
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/http/model/Order.php b/app/http/model/Order.php
new file mode 100644
index 0000000..023561b
--- /dev/null
+++ b/app/http/model/Order.php
@@ -0,0 +1,9 @@
+ $data['data']['periodType'],
+ 'isAbroad' => $data['data']['isAbroad'],
+ 'shareType' => $data['data']['shareType'],
+ 'isRelayed' => $data['data']['isRelayed'],
+ 'lineType' => $data['data']['lineType'],
+ 'bandwidth' => $data['data']['bandwidth'],
+ 'package_type' => HttpOrderEnum::$cxyx
+ ];
+ if ($data['data']['isAbroad'] == 0) {
+ unset($where['isRelayed']);
+ }
+ if ($data['data']['shareType'] == 1) {
+ unset($where['lineType']);
+ }
+ break;
+
+ }
+
+ $price = $this->getOne($where, 'ipAmount,price');
+ return $price;
+ }
+}
\ No newline at end of file
diff --git a/app/http/model/Recharge.php b/app/http/model/Recharge.php
new file mode 100644
index 0000000..5e9e6cc
--- /dev/null
+++ b/app/http/model/Recharge.php
@@ -0,0 +1,9 @@
+getOne(['Id' => $id],'Id,sgUserId,ju_money,is_verify');
+
+ if (empty($user_info['sgUserId'])) {
+ $request_data = ['account' => $user_info['Id']];
+ $url = $this->url_root.'/register/user';
+
+ $request_data = formatHttpRequert($request_data);
+
+ $http_data = json_decode(linkcurl($url,'POST',$request_data,[],0));
+
+ $update_user_info['sgUserId'] = $user_info['sgUserId'] = $http_data->d->id;
+
+ $this->updateOne(['Id' => $id],$update_user_info);
+ }
+ return $user_info;
+ }
+}
\ No newline at end of file
diff --git a/enum/http/Order.php b/enum/http/Order.php
new file mode 100644
index 0000000..6f3c4ce
--- /dev/null
+++ b/enum/http/Order.php
@@ -0,0 +1,60 @@
+ '新开',
+ 2 => '续费',
+ 3 => '修改IP',
+ 4 => '储值包',
+ ];
+ public static $new = 1;
+ public static $rebuy = 2;
+ public static $change_ip = 3;
+ public static $charge = 4;
+
+ public static $package_type = [
+ 11 => '短效储值包',
+ 21 => '短效包天',
+ 22 => '短效包量',
+ 23 => '短效无限量',
+ 31 => '长效游戏',
+ ];
+ public static $dxczb = 11;
+ public static $dxwxl = 23;
+ public static $dxbt = 21;
+ public static $dxbl = 22;
+ public static $cxyx = 31;
+ public static $package_list = [21,22,23];
+
+ //有效时长
+ public static $durationType = [
+ 5 => '1至5分钟',
+ 25 => '5至25分钟',
+ 180 => '25至180分钟',
+ 360 => '3至6小时',
+ ];
+ public static $five = 5;
+ public static $twfive = 25;
+ public static $oneet = 180;
+ public static $tshour = 360;
+
+ public static $order_status = [
+ 0 => '未支付',
+ 1 => '已支付',
+ ];
+ public static $pay_no = 0;
+ public static $pay_yes = 1;
+
+ public static $game_type = [
+ 0 => '国内',
+ 1 => '国外',
+ ];
+ public static $sataus = [
+ 0 => '请求后台失败',
+ 1 => '请求成功',
+ ];
+ public static $success = 1;
+ public static $fail = 0;
+}
diff --git a/extends/alipay/Alipay.php b/extends/alipay/Alipay.php
index 2db76a4..94ef7b3 100644
--- a/extends/alipay/Alipay.php
+++ b/extends/alipay/Alipay.php
@@ -2,7 +2,7 @@
/*
* @Author: 万永康
* @Date: 2020-10-11 12:32:50
- * @LastEditTime: 2023-11-11 14:15:28
+ * @LastEditTime: 2023-12-06 16:47:16
* @LastEditors: “wanyongkang” “937888580@qq.com”
* @Description: In User Settings Edit
* @FilePath: /phptest/alipay/Alipay.php
@@ -122,6 +122,37 @@ class Alipay
return $result;
}
+
+ public static function pay_http($param)
+ {
+ global $config;
+ $aop = new \AopClient ();
+ $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
+ $aop->appId = $config['alipay2']['app_id'];;
+ $aop->rsaPrivateKey = $config['alipay2']['private_key'] ;
+ $aop->apiVersion = '1.0';
+ $aop->signType = 'RSA2';
+ $aop->postCharset='utf-8';
+ $aop->format='json';
+ $aop->alipayrsaPublicKey = $config['alipay2']['public_key'];
+
+ $request = new \AlipayTradePagePayRequest();
+
+
+
+ $param = json_encode($param);
+
+ $request->setReturnUrl('http://www.juip.com/product/http');
+
+ $notifyUrl="http://php-api.juip.com/common/alipay/httalipayverify";
+ $request->setNotifyUrl($notifyUrl);
+
+ $request->setBizContent($param);
+ $result = $aop->pageExecute ( $request);
+
+ return $result;
+
+ }
/**
* @description: 获取支付返回参数
diff --git a/extends/wechatpay/Wxpay.php b/extends/wechatpay/Wxpay.php
index ec44386..d685d22 100644
--- a/extends/wechatpay/Wxpay.php
+++ b/extends/wechatpay/Wxpay.php
@@ -26,4 +26,21 @@ class Wxpay
$url2 = $result["code_url"];
return $url2;
}
+
+ public function http_pay($param) {
+ $notify = new \NativePay();
+ $input = new \WxPayUnifiedOrder();
+ $input->SetBody("HTTP充值");
+ $input->SetOut_trade_no($param['order_no']);
+ $input->SetTotal_fee($param['money']);
+ $input->SetTime_start(date("YmdHis"));
+ $input->SetTime_expire(date("YmdHis", time() + 600));
+ $input->SetNotify_url("http://php-api.juip.com/common/wxpay/httpwxpayverify");
+ $input->SetTrade_type("NATIVE");
+
+ $result = $notify->GetPayUrl($input);
+
+ $url2 = $result["code_url"];
+ return $url2;
+ }
}
diff --git a/fastphp/func/common.php b/fastphp/func/common.php
index 81bef64..29c3200 100644
--- a/fastphp/func/common.php
+++ b/fastphp/func/common.php
@@ -4,8 +4,8 @@
* @version:
* @Author: kangkang
* @Date: 2020-09-30 17:32:46
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2020-12-07 16:44:09
+ * @LastEditors: “wanyongkang” “937888580@qq.com”
+ * @LastEditTime: 2023-12-26 16:29:17
*/
/**
* 浏览器友好的变量输出
@@ -221,4 +221,26 @@ function getIp()
}
}
return ($ip);
+}
+
+//格式化http接口的请求函数
+function formatHttpRequert($data){
+ //1001
+//f031e77c3055ade88b1db389e85a973a
+
+ $time = time();
+ $data['appid'] = 1001;
+ $data['timestamp'] = $time;
+ ksort($data);
+
+ $http_request = http_build_query($data);
+ $http_request =str_replace("%2C", ",", $http_request);
+
+ $sign = md5($http_request.'f031e77c3055ade88b1db389e85a973a');
+
+ $data ['appid'] = '1001';
+ $data ['timestamp'] = $time;
+ $data ['sign'] = $sign;
+
+ return $data;
}
\ No newline at end of file