PaymentEntryController.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Models\Order;
  4. use App\Services\FoxPay;
  5. use App\Services\PayMentService;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\DB;
  8. use Illuminate\Support\Facades\Log;
  9. use Illuminate\Support\Facades\Redis;
  10. class PaymentEntryController {
  11. // 新支付总入口---区分签名
  12. public function pay(Request $request) {
  13. // 获取数据
  14. $userId = (int)$request->input('userID');
  15. $payAmt = (int)$request->input('payAmt');
  16. $userName = $request->input('userName');
  17. $userEmail = $request->input('userEmail');
  18. $userPhone = $request->input('userPhone');
  19. $pay_type = (int)$request->input('pay_type');
  20. $pay_method = $request->input('pay_method', '');
  21. $GiftsID = (int)$request->input('GiftsID');
  22. $AdId = $request->input('AdId');
  23. $eventType = $request->input('eventType');//俄罗斯支付传递特别参数
  24. $buyIP = $request->ip();
  25. if ($GiftsID == 'undefined') $GiftsID = '';
  26. if(in_array(intval($GiftsID),[201,211,212])){
  27. $query = DB::connection('write')->table('QPAccountsDB.dbo.YN_VIPAccount')
  28. ->where('UserID', $userId)
  29. ->value('Recharge');
  30. if($query)return apiReturnFail(__('messages.api.payment.paytype_error_simple'));
  31. }
  32. $where[] = ['type', 'pay_method'];
  33. $where[] = ['status', 1];
  34. $where[] = ['id', $pay_type];
  35. $query = DB::table('agent.dbo.admin_configs')->where($where)->value('config_key');
  36. if ($query === null || $query === false) {
  37. return apiReturnFail(__('messages.api.payment.paytype_error_simple'));
  38. }
  39. //用户需要适配对应的国家充值渠道
  40. if(env('PAYMENT_BIND_TO_COUNTRY',0)){
  41. $user = DB::table('QPAccountsDB.dbo.AccountsInfo')->where('UserID', $userId)->select('BindCountry','Channel')->first();
  42. $payServiceString = PayMentService::getServiceByPayCountry($query, $user->Channel, $user->BindCountry);
  43. }else{
  44. $channel = DB::table('QPAccountsDB.dbo.AccountsInfo')->where('UserID', $userId)
  45. ->value('Channel');
  46. $payServiceString = PayMentService::getServiceByPayMethod($query, $channel);
  47. }
  48. if(isset($AdId)&&!empty($AdId))Redis::set('user_ad_'.$userId,$AdId);
  49. Log::info('channel', [
  50. 'string' => $payServiceString
  51. ]);
  52. if($userId == 4755057){
  53. $payServiceString = 'SmartFastPay';
  54. }
  55. $service = PayMentService::pay_order($payServiceString);
  56. $result = $service->pay_order($userId, $payAmt, $userName, $userEmail, $userPhone, $GiftsID, $buyIP, $AdId, $eventType, $pay_method);
  57. //出现错误,再试一次
  58. if($result['code']!=200&&$result['msg']!='needphone'){
  59. //用户需要适配对应的国家充值渠道
  60. if(env('PAYMENT_BIND_TO_COUNTRY',0)){
  61. $user = DB::table('QPAccountsDB.dbo.AccountsInfo')->where('UserID', $userId)->select('BindCountry','Channel')->first();
  62. $payServiceString = PayMentService::getServiceByPayCountry($query, $user->Channel, $user->BindCountry,$payServiceString);
  63. }else{
  64. $channel = DB::table('QPAccountsDB.dbo.AccountsInfo')->where('UserID', $userId)
  65. ->value('Channel');
  66. $payServiceString = PayMentService::getServiceByPayMethod($query, $channel,$payServiceString);
  67. }
  68. Log::info('channel retry', [
  69. 'string' => $payServiceString
  70. ]);
  71. $service = PayMentService::pay_order($payServiceString);
  72. $result = $service->pay_order($userId, $payAmt, $userName, $userEmail, $userPhone, $GiftsID, $buyIP, $AdId, $eventType, $pay_method);
  73. }
  74. return $result;
  75. }
  76. // 新支付总入口---区分签名
  77. public function iospay(Request $request) {
  78. // 获取数据
  79. $userId = (int)$request->input('userID');
  80. $payAmt = (int)$request->input('payAmt');
  81. $userName = $request->input('userName');
  82. $userEmail = $request->input('userEmail');
  83. $userPhone = $request->input('userPhone');
  84. $pay_type = (int)$request->input('pay_type');
  85. $GiftsID = (int)$request->input('GiftsID');
  86. $AdId = $request->input('AdId');
  87. $eventType = $request->input('eventType');
  88. $buyIP = $request->ip();
  89. if ($GiftsID == 'undefined') $GiftsID = '';
  90. $service = PayMentService::pay_order('apple');
  91. $result = $service->pay_order($userId, $payAmt, $userName, $userEmail, $userPhone, $GiftsID, $buyIP, $AdId, $eventType);
  92. return $result;
  93. }
  94. // 新支付总入口---区分签名
  95. public function googlepay(Request $request) {
  96. // 获取数据
  97. $userId = (int)$request->input('userID');
  98. $payAmt = (int)$request->input('payAmt');
  99. $userName = $request->input('userName');
  100. $userEmail = $request->input('userEmail');
  101. $userPhone = $request->input('userPhone');
  102. $pay_type = (int)$request->input('pay_type');
  103. $GiftsID = (int)$request->input('GiftsID');
  104. $AdId = $request->input('AdId');
  105. $eventType = $request->input('eventType');
  106. $buyIP = $request->ip();
  107. if ($GiftsID == 'undefined') $GiftsID = '';
  108. $service = PayMentService::pay_order('google');
  109. $result = $service->pay_order($userId, $payAmt, $userName, $userEmail, $userPhone, $GiftsID, $buyIP, $AdId, $eventType);
  110. return $result;
  111. }
  112. // 新支付总入口---区分签名
  113. /*public function pay2(Request $request) {
  114. // 获取数据
  115. $userId = (int)$request->input('userID');
  116. $payAmt = (int)$request->input('payAmt');
  117. $userName = $request->input('userName');
  118. $userEmail = $request->input('userEmail');
  119. $userPhone = $request->input('userPhone');
  120. $pay_type = (int)$request->input('pay_type');
  121. $GiftsID = (int)$request->input('GiftsID');
  122. $AdId = $request->input('AdId');
  123. $eventType = $request->input('eventType');
  124. $buyIP = $request->ip();
  125. if ($GiftsID == 'undefined') $GiftsID = '';
  126. // 验证是不是10卢币首充礼包
  127. if ($GiftsID == 200) {
  128. // 查询状态
  129. $first = DB::connection('write')->table('QPAccountsDB.dbo.SystemStatusInfo')
  130. ->where('StatusName', 'FirstChargeGiftBagStatus')
  131. ->first();
  132. if ($first->StatusValue != 1) return apiReturnFail(['web.payment.activity_closed',__('messages.api.payment.activity_closed')]);
  133. // 首充
  134. $firstCharge = DB::connection('write')->table('QPAccountsDB.dbo.SystemStatusInfo')
  135. ->where('StatusName', 'FirstChargeGiftBag')
  136. ->first();
  137. $pay_type = $firstCharge->StatusValue;
  138. }
  139. if (true) {
  140. $where[] = ['type', 'pay_method'];
  141. $where[] = ['status', 1];
  142. $where[] = ['id', $pay_type];
  143. $query = DB::table('agent.dbo.admin_configs')->where($where)->value('config_key');
  144. if ($query === null || $query === false) {
  145. return apiReturnFail(__('messages.api.payment.paytype_error_simple'));
  146. }
  147. $channel = DB::table('QPAccountsDB.dbo.AccountsInfo')->where('UserID', $userId)
  148. ->value('Channel');
  149. $payServiceString = PayMentService::getServiceByPayMethod3($query, $channel);
  150. Log::info('channel', [
  151. 'string' => $payServiceString
  152. ]);
  153. }
  154. $service = PayMentService::pay_order($payServiceString);
  155. $result = $service->pay_order($userId, $payAmt, $userName, $userEmail, $userPhone, $GiftsID, $buyIP, $AdId, $eventType);
  156. return $result;
  157. }*/
  158. }