| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <?php
- namespace App\Http\Controllers\Game;
- use App\Facade\TableName;
- use App\Http\Controllers\Api\BroQrController;
- use App\Services\PayMentService;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Support\Facades\Redis;
- class PaymentEntryController {
- // 新支付总入口---区分签名
- public function pay(Request $request) {
- // return apiReturnFail(['web.payment.paytype_error','PayType ERROR']);
- // 获取数据
- $userId = (int)$request->globalUser->UserID;//(int)$request->input('userID');
- $payAmt = $request->input('payAmt');
- $userName = $request->input('userName');
- $userEmail = $request->input('userEmail');
- $userPhone = $request->input('userPhone');
- $pay_type = (int)$request->input('pay_type',28);
- $pay_method = $request->input('pay_method', 1);
- $GiftsID = (int)$request->input('GiftsID');
- $AdId = $request->input('AdId');
- $eventType = $request->input('eventType');
- $buyIP = $request->ip();
- if ($GiftsID == 'undefined') $GiftsID = '';
- $where[] = ['type', 'pay_method'];
- $where[] = ['status', 1];
- $where[] = ['id', $pay_type];
- // $payMethods = [
- // 'cashapp' => 1,
- // 'paypal' => 2,
- // 'applepay' => 4,
- // 'googlepay' => 8,
- //
- // ];
- // 退款订单限制(仅在 pay_method = 2 时生效)
- if ((int)$pay_method === 2) {
- $refundCacheKey = 'user_refund_paymethod2_' . $userId;
- // 如果缓存中已经标记过有退款订单,则直接拦截
- if (Redis::get($refundCacheKey)) {
- return apiReturnFail(['web.payment.paytype_error','Refund Order Exists']);
- }
- // 查询是否存在退款订单(pay_status = 9 且 order_title = 2)
- $hasRefundOrder = DB::connection('write')
- ->table('agent.dbo.order')
- ->where('user_id', $userId)
- // ->where('order_title', 2)
- ->where('pay_status', 9)
- ->exists();
- // 有退款订单则写入缓存并返回错误
- if ($hasRefundOrder) {
- // 缓存一段时间,避免频繁查询
- Redis::setex($refundCacheKey, 86400, 1);
- return apiReturnFail(['web.payment.paytype_error','Refund Order Exists']);
- }
- }
- $query = DB::table('agent.dbo.admin_configs')->where($where)->value('config_key');
- if ($query === null || $query === false) {
- return apiReturnFail(['web.payment.paytype_error','PayType ERROR']);
- }
- if($pay_method>=64){
- $payServiceString = 'CoinPay';
- }else{
- $payServiceString = PayMentService::getServiceByPayMethod($query, $payAmt,$pay_method);
- }
- $service = PayMentService::pay_order($payServiceString);
- if(isset($AdId)&&!empty($AdId))Redis::set('user_ad_'.$userId,$AdId);
- $result = $service->pay_order($userId, $payAmt, $userName, $userEmail, $userPhone, $GiftsID, $buyIP, $AdId, $eventType, $pay_method);
- return $result;
- }
- // 新支付总入口---区分签名
- public function payQR(Request $request) {
- // 获取数据
- $userId = (int)$request->globalUser->UserID;//(int)$request->input('userID');
- $payAmt = (int)$request->input('payAmt');
- $userName = $request->input('userName');
- $userEmail = $request->input('userEmail');
- $userPhone = $request->input('userPhone');
- $pay_type = (int)$request->input('pay_type');
- $GiftsID = (int)$request->input('GiftsID');
- $AdId = $request->input('AdId');
- $eventType = $request->input('eventType');
- $buyIP = $request->ip();
- $pay_method = (int)$request->input('pay_method','clabe');
- if ($GiftsID == 'undefined') $GiftsID = '';
- Log::info('channel', [
- 'string' => 'BroQrController'
- ]);
- $service =new BroQrController();
- if(isset($AdId)&&!empty($AdId))Redis::set('user_ad_'.$userId,$AdId);
- $result = $service->pay_order($userId, $payAmt, $userName, $userEmail, $userPhone, $GiftsID, $buyIP, $AdId, $eventType);
- return $result;
- }
- // 新支付总入口---区分签名
- public function iospay(Request $request) {
- // 获取数据
- $userId =(int)$request->globalUser->UserID;// (int)$request->input('userID');
- $payAmt = (int)$request->input('payAmt');
- $userName = $request->input('userName');
- $userEmail = $request->input('userEmail');
- $userPhone = $request->input('userPhone');
- $pay_type = (int)$request->input('pay_type');
- $GiftsID = (int)$request->input('GiftsID');
- $AdId = $request->input('AdId');
- $eventType = $request->input('eventType');
- $buyIP = $request->ip();
- if ($GiftsID == 'undefined') $GiftsID = '';
- $service = PayMentService::pay_order('apple');
- $result = $service->pay_order($userId, $payAmt, $userName, $userEmail, $userPhone, $GiftsID, $buyIP, $AdId, $eventType);
- return $result;
- }
- // 新支付总入口---区分签名
- public function googlepay(Request $request) {
- // 获取数据
- $userId = (int)$request->globalUser->UserID;//(int)$request->input('userID');
- $payAmt = (int)$request->input('payAmt');
- $userName = $request->input('userName');
- $userEmail = $request->input('userEmail');
- $userPhone = $request->input('userPhone');
- $pay_type = (int)$request->input('pay_type');
- $GiftsID = (int)$request->input('GiftsID');
- $AdId = $request->input('AdId');
- $eventType = $request->input('eventType');
- $buyIP = $request->ip();
- if ($GiftsID == 'undefined') $GiftsID = '';
- $service = PayMentService::pay_order('google');
- $result = $service->pay_order($userId, $payAmt, $userName, $userEmail, $userPhone, $GiftsID, $buyIP, $AdId, $eventType);
- return $result;
- }
- }
|