HttpBaseController.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace App\Http\Api;
  3. use Alipay\EasySDK\Kernel\Config;
  4. use App\Services\Login\LoginTokenService;
  5. use App\Services\OrderService\ComboOrderService;
  6. use App\Services\OrderService\GoodsOrderService;
  7. use App\Traits\CommonTrait;
  8. use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
  9. use Illuminate\Foundation\Bus\DispatchesJobs;
  10. use Illuminate\Foundation\Validation\ValidatesRequests;
  11. use Illuminate\Routing\Controller as BaseController;
  12. class HttpBaseController extends BaseController
  13. {
  14. use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
  15. use CommonTrait;
  16. /**
  17. * 登录的token名称
  18. *
  19. * @var string
  20. */
  21. public string $sanctumTokenName = 'api';
  22. /**
  23. * @var array
  24. */
  25. public array $seoData = [
  26. 'title' => '',
  27. 'keywords' => '',
  28. 'description' => '【】。',
  29. ];
  30. public function __construct()
  31. {
  32. }
  33. /**
  34. * 判断该用户是否已经登录
  35. */
  36. public function isLoginJson()
  37. {
  38. $loginToken = new LoginTokenService('user_access_token');
  39. $this->tokenInfo = $loginToken->checkLogin();
  40. if (empty($this->tokenInfo)) {
  41. abort(401, '你还没有登录,请登录!');
  42. } else {
  43. $this->userId = $this->tokenInfo->user_id;
  44. }
  45. }
  46. public function getOptions()
  47. {
  48. $configArr = config('alipay');
  49. $options = new Config();
  50. $options->protocol = 'https';
  51. $options->gatewayHost = 'openapi.alipay.com';
  52. $options->signType = 'RSA2';
  53. $options->appId = $configArr['app_id'];
  54. // 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
  55. $options->merchantPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNAsh6eokb5DPCbblI0+QamcM0JpCSaC9YRNpM82hTD1Pb9D6lAMe1OYbrOoC8Vu7f/I8pQT/3Gd95R90vFjfXYEOY0VblLi20YpEQDylkcjBzSracm5Z1HJuB6Z3dt5IXOMxaN4E51b04TQ8mGY3YPCivrwIBXgLjcbQc6LycjvwTCz5BYR840YT9ilV3nIKNcJoOw/apzPQzgUVR1sK/K0oSUoY5LBlJYi3BXQZv7DGTZ84yhsyR21rVcPw5BSpYwDSaTugn5WSacvR7KLznCf1mG0F0xGayx+88cT1NyL1+G+IuCl1KdiUdoO3IsodmO2ZedVlino3x+q/gaElPAgMBAAECggEAe7N5U5izNviWP3YqGK1pabyB9fnu0cD7559fMipF1reXhVlaqz1n9J8msKx9yrsoiu3wWOyYxJi55pcYfforupEEO8dJR3ufNKNTRpdGZIuX3UwprnD/KHWUJf9fMeWcDysQegQ/JRFQEVfodi/ss0jzGEuaosBqIETbEJFLBLtLiPr66ePYBltBHETixi3eGrxeAAOuQkqp95y9DSztCxEGkyDQE3a1ejkN3E51NmYStA6wS5vydvi1v/kdWwT+FD3Utsq2LumoavxBp7U2gGGNXyFCh0UfrhMwQPrGMcAO+pUr+W1bkTCCRzPGPH8WPFf8afxMk+SR/47+0FWsoQKBgQDRmmIoSnGFboP7ffEC2ucO3RE6+whZkb3/poC8vI9E6BT1Xck1UFNqFXE+009v+u1lku68W2TDzJWv9yfNbJJ2hGqX+mTPEh300h0ESNrEMqteFGzVVqmhfaBF6OlzsMTeq6jYNDQRKDCkhnMJ+d1Cdr9wpbrtEyk4bOvw3pKZwwKBgQCsOXkaXC4gk04gky6sdLO5FB82V1q6gl6EQk7K+YMBskMnf/FWO96lncgcF80RoqF2H+vX4/AnW3EbDs7+A2KUFZzevKoLbzo7jq2Mb6/aFH8MdoDM79Cb+nRPc0rFKICQLImhRTCz1kVYKRRJ754YjXWdnmZuluBDkMXeu1qNhQKBgAyXaqgi+LjcT79u7GiQf+rrqtpRNEo1MCXIedlctnqcOo4W6Txzq98mlJwCk7YVa+d7MS5Nizsb8i4U+eYkTJQkFkc0+pNZ8kS/zpBwU/wPUy4eqf8S6rPR2Sv59vRFPT5nL4h1cl9Je8qWbRi/UuRoP83jltwhF4vVN0NMC6CDAoGBAKL0toukkNityIy19sGiorMKQQYv3V8AH+JQwzD2qWiffT8Qpg+MEnzuL/u04YpAMToNth/OQttagEiz2FMsbMflM0rlhJfRJG5Z8AgjXWahYh0uu2wttVsAvbC3TBYE3rCME6WOTCi9I1vpcpMKsLJWluUOjakyBPypLTA0YdfpAoGAbjsMis/Iit8VxfH7D1Oron9Bjx+W8Wntn1NzrRMaEI3vK8fD5xdJJtQCIHnnBCuU3RD2RlecREpvub13jhINrvf45SuWq4DVnugoKqeUPcvNCRbyUxCmb0uQ4aFPJvEuyPHOOPU1l4OwLkD9pteuWrdMPk37Ucw0reo+rMfH9xY=";//$configArr['private_key'];
  56. $options->alipayCertPath = $configArr['alipay_cert_public_key_rsa2'];//'<-- 请填写您的支付宝公钥证书文件路径,例如:/foo/alipayCertPublicKey_RSA2.crt -->';
  57. $options->alipayRootCertPath = $configArr['alipay_root_cert'];//'<-- 请填写您的支付宝根证书文件路径,例如:/foo/alipayRootCert.crt" -->';
  58. $options->merchantCertPath = $configArr['app_cert_public_key'];//'<-- 请填写您的应用公钥证书文件路径,例如:/foo/appCertPublicKey_2019051064521003.crt -->';
  59. //注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
  60. $options->alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjQLIenqJG+Qzwm25SNPkGpnDNCaQkmgvWETaTPNoUw9T2/Q+pQDHtTmG6zqAvFbu3/yPKUE/9xnfeUfdLxY312BDmNFW5S4ttGKREA8pZHIwc0q2nJuWdRybgemd3beSFzjMWjeBOdW9OE0PJhmN2Dwor68CAV4C43G0HOi8nI78Ews+QWEfONGE/YpVd5yCjXCaDsP2qcz0M4FFUdbCvytKElKGOSwZSWItwV0Gb+wxk2fOMobMkdta1XD8OQUqWMA0mk7oJ+VkmnL0eyi85wn9ZhtBdMRmssfvPHE9Tci9fhviLgpdSnYlHaDtyLKHZjtmXnVZYp6N8fqv4GhJTwIDAQAB";//$configArr['ali_public_key'];
  61. //可设置异步通知接收服务地址(可选)
  62. $options->notifyUrl = $configArr['notify_url'];
  63. //可设置AES密钥,调用AES加解密相关接口时需要(可选)
  64. // $options->encryptKey = "<-- 请填写您的AES密钥,例如:aa4BtZ4tspm2wnXLb1ThQA== -->";
  65. return $options;
  66. }
  67. /**
  68. * 判断是否是测试环境
  69. *
  70. * @return bool
  71. */
  72. public function isTest()
  73. {
  74. $url = \request()->getHttpHost();
  75. if ($url == 'www.xingyousoft.me' || $url == 'audio.xingyousoft.me' || $url == 'audio.xingyousoft.com') {
  76. return $url;
  77. } else {
  78. return false;
  79. }
  80. }
  81. }