cxgj/modules/api/controllers/PaymentController.php
2023-11-27 09:45:13 +08:00

199 lines
6.0 KiB
PHP

<?php
/**
* @author Any
* @description KISS
* @date 2021年8月13日
* @version 1.0.0
*
* _____LOG_____
*
*/
namespace app\modules\api\controllers;
use app\modules\api\behaviors\LoginBehavior;
use app\components\SiteHelper;
use app\models\common\payment\Payment;
use app\models\common\payment\PaymentOrder;
use app\models\common\payment\PaymentActionForm;
use app\models\UniqueOrderNo;
use app\modules\api\models\PaymentOrderForm;
class PaymentController extends Controller
{
public function behaviors() {
return array_merge(parent::behaviors(),[
'login' => [
'class' => LoginBehavior::className(),
'ignore' => [
'api/payment/payment-type'
]
]
]);
}
// public function actionTest()
// {
// $paymentOrder = new PaymentOrder([
// 'orderNo' => UniqueOrderNo::generate(UniqueOrderNo::ORDER_TYPE_PAYMENT_ORDER, "\\app\\models\\PaymentOrder"),
// 'amount' => 1,
// 'title' => '购买商品',
// 'notifyClass' => '0',
// ]);
// $payment = new Payment();
// $paymentOrders[] = $paymentOrder;
// $data = $payment->createOrder($paymentOrders);
// return $this->responseHandler($data);
// }
/**
* showdoc
* @catalog 收银台
* @title 支付数据
* @description 本接口提供支付数据
* @method post
* @url /api/payment/pay-data
* @param pay_id 必选 int 合并支付ID
* @param pay_type 必选 string 支付类型
* @return
* @return_param param param_type param_desc
* @remark
*/
public function actionPayData()
{
if(!\Yii::$app->request->isPost){
$data = $this->invaildRequest();
return $this->responseHandler($data);
}
// if(!$this->lock->acquire()){
// $data = ['code' => 1, 'msg' => '系统繁忙!稍后再试^v^!'];
// return $this->responseHandler($data);
// }
$form = new PaymentActionForm();
$form->attributes = \Yii::$app->request->post();
$form->cx_mch_id = $this->cx_mch_id;
$form->wechat_mp = $this->wechat_mp;
$data = $form->payData();
// $this->lock->release();
return $this->responseHandler($data);
}
/**
* showdoc
* @catalog 收银台
* @title 余额支付
* @description 本接口提供余额支付
* @method post
* @url /api/payment/balance-pay
* @param pay_id 必选 int 合并支付ID
* @return
* @return_param param param_type param_desc
* @remark
*/
public function actionBalancePay()
{
if(!\Yii::$app->request->isPost){
$data = $this->invaildRequest();
return $this->responseHandler($data);
}
if(!$this->lock->acquire()){
$data = ['code' => 1, 'msg' => '系统繁忙!稍后再试^v^!'];
return $this->responseHandler($data);
}
$form = new PaymentActionForm();
$form->attributes = \Yii::$app->request->post();
$data = $form->balancePay();
$this->lock->release();
return $this->responseHandler($data);
}
/**
* showdoc
* @catalog 收银台
* @title 积分支付
* @description 本接口提供积分支付
* @method post
* @url /api/payment/integral-pay
* @param pay_id 必选 int 合并支付ID
* @return
* @return_param param param_type param_desc
* @remark
*/
public function actionIntegralPay()
{
if(!\Yii::$app->request->isPost){
$data = $this->invaildRequest();
return $this->responseHandler($data);
}
if(!$this->lock->acquire()){
$data = ['code' => 1, 'msg' => '系统繁忙!稍后再试^v^!'];
return $this->responseHandler($data);
}
$form = new PaymentActionForm();
$form->attributes = \Yii::$app->request->post();
$data = $form->integralPay();
$this->lock->release();
return $this->responseHandler($data);
}
/**
* showdoc
* @catalog 收银台
* @title 创建支付订单
* @description 创建支付订单
* @method post
* @url /api/payment/payment-order
* @param id 必选 string 订单id
* @param pay_type 必选 string 支付方式
* @return {"code":0,"msg":"ok","data":{"pay_id":"1"}}
* @return_param data.pay_id string 合并支付ID
* @remark 获取支付方式通过【获取支付方式】接口的short_name获取,如未返回【合并支付ID】则不用请求支付接口
* @author LLB
*/
public function actionPaymentOrder()
{
if(!\Yii::$app->request->isPost){
$data = $this->invaildRequest();
return $this->responseHandler($data);
}
if(!$this->lock->acquire()){
$data = ['code' => 1, 'msg' => '系统繁忙!稍后再试^v^!'];
return $this->responseHandler($data);
}
$form = new PaymentOrderForm();
$form->attributes = \Yii::$app->request->post();
$form->cx_mch_id = $this->cx_mch_id;
$form->user_id = \Yii::$app->user->identity->id;
$data = $form->createPayment();
$this->lock->release();
return $this->responseHandler($data);
}
/**
* showdoc
* @catalog 收银台
* @title 获取支付方式
* @description 获取支付方式
* @method post
* @url /api/payment/payment-type
* @return {"code":0,"msg":"ok","data":{"pay_id":"1"}}
* @return_param data.pay_id string 合并支付ID
* @author LLB
*/
public function actionPaymentType()
{
if(!\Yii::$app->request->isPost){
$data = $this->invaildRequest();
return $this->responseHandler($data);
}
$form = new PaymentOrderForm();
$data = $form->getPayType($this->cx_mch_id);
return $this->responseHandler(['code' => 0,'msg' => 'ok','data' => $data]);
}
}