PaymentEntryController.php 7.7 KB

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