PayController.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Modes\ErrorLog;
  4. use App\Modes\Order;
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7. class PayController extends Controller
  8. {
  9. public function aliNotify(Request $request)
  10. {
  11. $data = file_get_contents("php://input");
  12. ErrorLog::saveMsg('aliPay后台异步通知支付结果file_get_contents("php://input"); ', $data, 1);
  13. $data = explode('&', $data);
  14. ErrorLog::saveMsg('explode(\'&\', $data)', $data, 1);
  15. $reqdata = [];
  16. if (is_array($data)) {
  17. foreach ($data as $item) {
  18. $item = explode('=', $item);
  19. if (is_array($item) && count($item) == 2) {
  20. // 回调数据带有中文的需要先解码再转码
  21. $reqdata[$item[0]] = mb_convert_encoding(urldecode($item[1]), 'utf-8', 'gb2312');
  22. }
  23. }
  24. ErrorLog::saveMsg('支付宝异步回调数据解析', $reqdata, 1);
  25. }
  26. $pay = \App::make('aliPay');
  27. $res = $pay->notify($reqdata);
  28. return $res;
  29. }
  30. public function aliReturn(Request $request)
  31. {
  32. $pay = \App::make('aliPay');
  33. $res = $pay->return($request->all());
  34. // 订单类型 1-升级支付 2-购买广告支付 2-点币购买
  35. if ($res['type'] == 2) {
  36. if (isMobile()) {
  37. return redirect('/#/successPage?type=savead');
  38. } else {
  39. return redirect('/pc/#/home?type=savead');
  40. }
  41. } else {
  42. return redirect('/#/successPage?type=paysuccess');
  43. }
  44. }
  45. public function weichatNotify(Request $request)
  46. {
  47. $pay = \App::make('wechat');
  48. $xml = file_get_contents("php://input");
  49. //$jsonxml = json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA));
  50. // $data = json_decode($jsonxml, true);
  51. $res = $pay->notify($xml);
  52. }
  53. public function getPcPayInfo(Request $request){
  54. $param=$request->all();
  55. if(!empty($param['order_no'])){
  56. $order=Order::whereOrderNo($param['order_no'])->select('id','order_no','is_pay')->first();
  57. if(!empty($order)){
  58. $order=$order->toArray();
  59. return showJsonSucc('数据查找成功',$order);
  60. }else{
  61. return showJsonErr('订单不存在!');
  62. }
  63. }else{
  64. return showJsonErr('参数order_no不能为空');
  65. }
  66. }
  67. }