hy-farm/muchang/home/controllers/PayController.php
2026-05-29 19:54:56 +08:00

167 lines
5.6 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Created by PhpStorm.
* User: zn
* Date: 2017/8/9
* Time: 14:37
*/
namespace app\controllers;
use common\models\User;
use common\modules\qixunpay\vo\Pay;
use common\modules\qixunpay\PayUtil;
use common\services\ClientMessageServices;
use common\services\GameConfigServices;
use common\services\ResultStatusServices;
use common\services\UserService;
use common\utils\YiiComponentUtil;
use Yii;
use yii\rest\Controller;
class PayController extends Controller
{
public function actionPay()
{
$userID = Yii::$app->request->get('user_id');
$payID = Yii::$app->request->get('pay_id'); //支付配置表ID
$configType = intval(Yii::$app->request->get('config_type')); //支付配置类型;0:充值1周卡月卡
// if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
$userDbData = User::findById($userID);
if ($configType == 0) {
//充值
if($userDbData['isjihuo']==0){
return ClientMessageServices::sendMessage('请先激活账号');
}
$config = GameConfigServices::getParamByPath('pay_list.' . $payID);
if (empty($config)) return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
$rmb = floatval($config['rmb']);
$gem = (int)$config['gem'];
if ($rmb <= 0 || $gem <= 0) return ClientMessageServices::sendMessage(ResultStatusServices::RS_CONFIG_ERROR);
} elseif ($configType == 1) {
if($userDbData['isjihuo']==0){
return ClientMessageServices::sendMessage('请先激活账号');
}
//周卡月卡
$configType = 1;
$config = GameConfigServices::getParamByPath('card.' . $payID);
if (empty($config)) return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
$rmb = floatval($config['rmb']);
$gem = 0;
if ($rmb <= 0) return ClientMessageServices::sendMessage(ResultStatusServices::RS_CONFIG_ERROR);
}else{
if($userDbData['isjihuo']==1){
return ClientMessageServices::sendMessage('您的账号已经激活');
}
$rmb = GameConfigServices::getCommonNumByID(GameConfigServices::COMMON_BROADCAST_MESSAGE_EXPEND);
$gem = 0;
if ($rmb <= 0) return ClientMessageServices::sendMessage(ResultStatusServices::RS_CONFIG_ERROR);
}
list($insidePayConfig, $orderID) = PayUtil::pay($userID, $rmb, $gem, PayUtil::PAY_TYPE_WX_INSIDE, $payID, $configType);
$rData['order_id'] = $orderID; //订单ID
$rData['money'] = $rmb; //支付金额
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $rData);
//下面是之前配置微信支付的
// list($insidePayConfig, $orderID, $scanURL) = PayUtil::pay($userID,$rmb,$gem,PayUtil::PAY_TYPE_WX_SCAN,$payID);
$jsConfig = YiiComponentUtil::easywechat()->oaApp()->jssdk->buildConfig(['chooseWXPay'], true);
$rData['pay_config'] = $insidePayConfig; //微信支付配置
$rData['order_id'] = $orderID; //订单ID
$rData['js_config'] = $jsConfig;
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $rData);
}
public function actionRecharge()
{
//获取数据
$Code = $_POST['token'];
$payType = $_POST['payType'];
$number = $_POST['number'];
//验证
if (!$Code) {
$json = array('code' =>'1004', 'error_msg' =>'用户不存在');
return $json;
}
//查找用户
$userData = User::findOne(['code' => $Code]);
if ($userData == null) {
$json = array('code' =>'1004', 'error_msg' =>'用户不存在');
return $json;
}
$userID = $userData['id'];
$rmb = floatval($number);
$gem = (int)$number;
list($insidePayConfig, $orderID) = PayUtil::pay($userID, $rmb, $gem, PayUtil::PAY_TYPE_WX_INSIDE, 0, 0);
$rData['order_id'] = $orderID; //订单ID
$rData['money'] = $rmb*100; //支付金额
$rData['payType'] = $payType; //支付金额
$json = array('code' =>0, 'error_msg' =>$rData);
return $json;
}
/**
* 获取提现账户
*/
public function actionRechargelist()
{
//获取数据
$Code = $_POST['token'];
//验证
if (!$Code) {
$json = array('code' =>'1004', 'error_msg' =>'用户不存在');
return $json;
}
//查找用户
$userData = User::findOne(['code' => $Code]);
$find = Pay::find();
$find->andWhere(['=', 'user_id', $userData['id']]);
$find->limit(10);
$find->addOrderBy(['id' => SORT_DESC]);
$dbList = $find->all();
$json = array('code' =>0, 'data' =>$dbList);
return $json;
}
/**
* 支付返回
*/
public function actionPayCallBack()
{
PayUtil::payCallBack();
}
public function actionCheckOrder()
{
PayUtil::payCallBack();
exit;
//$userID = Yii::$app->request->get('user_id');
$orderID = Yii::$app->request->get('order_id');
// if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
$r = PayUtil::checkOrder($orderID);
if ($r !== true) return ClientMessageServices::sendMessage(ResultStatusServices::RS_WX_PAY_ERROR, $r);
$user = User::findById($userID);
return ClientMessageServices::sendMessage(ResultStatusServices::RS_WX_PAY_ERROR, $user->genClientData());
}
}