PayHookController.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Http\Controllers\Api\Common;
  3. use Aix\Pay\Data\PayOrder;
  4. use App\Http\Controllers\Api\ApiBaseController;
  5. use App\Services\Common\PayService;
  6. use SimpleSoftwareIO\QrCode\Facades\QrCode;
  7. class PayHookController extends ApiBaseController
  8. {
  9. /**
  10. * @var PayService
  11. */
  12. protected $payService;
  13. /**
  14. * PayHookController constructor.
  15. * @param PayService $payService
  16. */
  17. public function __construct(PayService $payService)
  18. {
  19. $this->payService = $payService;
  20. }
  21. /**
  22. * @param $platform: 支付宝:alipay 微信:wechat
  23. * @param $type : web(支付宝电脑端支付) scan(微信扫码支付)
  24. * @return mixed
  25. */
  26. public function test($platform, $type)
  27. {
  28. $payorder=new PayOrder();
  29. $payorder->trade_no=$this->payService->getTradeNo(100);
  30. $payorder->subject="订单测试";
  31. $payorder->detail="测试订单详情";
  32. $payorder->price=0.01;
  33. $payorder->callback='App\Services\Common\PayService.testhook';
  34. if ($type == 'web') {
  35. $payorder->return_url=route('test.return');
  36. }
  37. if ($type == 'official') {
  38. $payorder->openid=$this->payService->getPayOpenid();
  39. }
  40. $result=$this->payService->pay($platform, $type, $payorder);
  41. // var_dump($result);
  42. if ($type == 'scan') {
  43. return QrCode::size(100)->generate($result->code_url);
  44. }
  45. return $result ;
  46. }
  47. public function aliHook()
  48. {
  49. return $this->payService->payHook('alipay');
  50. }
  51. public function wechatHook()
  52. {
  53. return $this->payService->payHook('wechat');
  54. }
  55. public function testreturn()
  56. {
  57. var_dump(request()->all());
  58. return '';
  59. }
  60. }