http上线

This commit is contained in:
“wanyongkang”
2023-12-26 16:37:09 +08:00
parent e768fdf8e1
commit 95200f1c5a
13 changed files with 1269 additions and 3 deletions

View File

@@ -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';
}
}

View File

@@ -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 '<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>';
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 '<xml>
<return_code><![CDATA[SUCCESS]]></return_code>

View File

@@ -0,0 +1,425 @@
<?php
namespace app\http\controller;
use fastphp\base\Controller;
use app\http\model\User as UserModel;
use app\http\model\Recharge as RechargeModel;
use app\http\model\Order as OrderModel;
use extend\wechatpay\Wxpay;
use extend\alipay\Alipay;
use enum\http\Order as HttpOrderEnum;
use app\http\model\Package as PackageModel;
class Order extends Controller
{
private $ju_zhengsong = [
'50' => 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;
}
}
}

View File

@@ -0,0 +1,88 @@
<?php
namespace app\http\controller;
use app\http\model\Package as PackageModel;
//appid1001
//tokence50f58b8f977b069575db6985a049b5
class Product
{
// "sgUserId": 0, //必填松果用户id
// "isAbroad": 0, //必填是否海外0-国内1-海外
// "shareType": 1, //必填线路类型1-共享2-独享
// "gameId": 0, //可选游戏id共享请传递0或不传独享在101协议中返回
// "lineType": 1, //必填线路质量类型1-普通2-优质
// "bandwidth": 1, //必填带宽1-1M、2-2M、5-5M、10-10M
// "cityCode": 0, //可选城市编码0表示随机不指定在102协议中返回
// "isp": 0, //可选运营商0表示随机不指定仅限国内线路使用2-电信3-移动4-联通
// "ipAmount": 1, //必填购买IP数量最小1个
// "periodType": 1, //必填周期类型1-按天7-按周30-按月90-按季度
// "periodAmount": 1,//必填购买周期根据periodType来例如按天就是N天按周就是N周
// private $url_root = 'https://sandbox.sgxz.cn';
private $url_root = 'https://merchant.sgxz.cn';
//查询长效可选城市
public function city(){
$request_data = $_POST;
$url = $this->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);
}
}

View File

@@ -0,0 +1,397 @@
<?php
namespace app\http\controller;
use fastphp\base\Controller;
use app\http\model\User as UserModel;
use app\http\model\Order as OrderModel;
use enum\http\Order as HttpOrderEnum;
use app\http\model\Recharge as RechargeModel;
class User extends Controller
{
// 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']);
}
//获取聚币余额
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));
}
}

9
app/http/model/Order.php Normal file
View File

@@ -0,0 +1,9 @@
<?php
namespace app\http\model;
use fastphp\base\Model;
class Order extends Model
{
protected $table = 'http_order';
}

View File

@@ -0,0 +1,78 @@
<?php
namespace app\http\model;
use fastphp\base\Model;
use enum\http\Order as HttpOrderEnum;
class Package extends Model
{
protected $table = 'http_package';
// order_info:{
// order_type:1,//1:预储值、2短效无限量、3短效包天、4短效包量、5长效游戏
// money:1,
// pay_type:2,//1聚币 2支付宝 3微信
// data:{}
// },
public function get_price($data) {
$where = [];
if (isset($data['data']['title'])) {
unset($data['data']['title']);
}
if (isset($data['data']['packId'])) {
unset($data['data']['packId']);
}
if (isset($data['data']['packType'])) {
unset($data['data']['packType']);
}
if (isset($data['data']['ipAmount'])) {
unset($data['data']['ipAmount']);
}
if (isset($data['data']['ids'])) {
unset($data['data']['ids']);
}
switch ($data['order_type']) {
case 2:
$where = $data['data'];
$where['package_type'] = HttpOrderEnum::$dxwxl;
$where['periodAmount'] = 1;
break;
case 3:
$where = $data['data'];
$where['package_type'] = HttpOrderEnum::$dxbt;
$where['periodAmount'] = 1;
$where['ipAmount'] = 1;
break;
case 4:
$where = $data['data'];
$where['package_type'] = HttpOrderEnum::$dxbl;
unset($where['ipAmount']);
break;
case 5:
case 6:
$where = [
'periodType' => $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;
}
}

View File

@@ -0,0 +1,9 @@
<?php
namespace app\http\model;
use fastphp\base\Model;
class Recharge extends Model
{
protected $table = 'http_recharge';
}

33
app/http/model/User.php Normal file
View File

@@ -0,0 +1,33 @@
<?php
namespace app\http\model;
use fastphp\base\Model;
class User extends Model
{
// private $url_root = 'https://sandbox.sgxz.cn';
private $url_root = 'https://merchant.sgxz.cn';
protected $table = 'user';
//获取用户的http相关信息 并且初始化sgUserId
public function get_http_user($id){
$user_info = $this->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;
}
}

60
enum/http/Order.php Normal file
View File

@@ -0,0 +1,60 @@
<?php
namespace enum\http;
class Order
{
public static $order_type = [
1 => '新开',
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;
}

View File

@@ -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: 获取支付返回参数

View File

@@ -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;
}
}

View File

@@ -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;
}