HttpBaseController.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace App\Http\Home;
  3. use App\Traits\CommonTrait;
  4. use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
  5. use Illuminate\Foundation\Bus\DispatchesJobs;
  6. use Illuminate\Foundation\Validation\ValidatesRequests;
  7. use Illuminate\Routing\Controller as BaseController;
  8. use Illuminate\Support\Facades\DB;
  9. use Illuminate\Support\Facades\Request;
  10. use Illuminate\Support\Facades\View;
  11. use Alipay\EasySDK\Kernel\Config;
  12. class HttpBaseController extends BaseController
  13. {
  14. use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
  15. use CommonTrait;
  16. /**
  17. * @var array|null 已经登录的用户信息
  18. */
  19. public ?array $userInfo;
  20. /**
  21. * @var array
  22. */
  23. public array $seoData = [
  24. 'title' => '助友办公软件',
  25. 'keywords' => '助友办公',
  26. 'description' => '【助友办公软件】提供各种办公工具。',
  27. ];
  28. public function __construct()
  29. {
  30. //
  31. if ($test = $this->isTest()) {
  32. $url = \request()->getScheme() . '://' . $test;
  33. } else {
  34. $url = \request()->getScheme() . '://www.qasimblog.com';
  35. }
  36. View::share('target', $url);
  37. View::share($this->seoData);
  38. }
  39. /**
  40. * 判断是否是测试环境
  41. *
  42. * @return false|string
  43. */
  44. public function isTest(): bool|string
  45. {
  46. $url = \request()->getHttpHost();
  47. if ($url == 'www.yososoft.me' || $url == 'audio.yososoft.me' || $url == 'pdf.yososoft.me' || $url == 'audio.zhuyou360.com') {
  48. return $url;
  49. } else {
  50. return false;
  51. }
  52. }
  53. /**
  54. * 获取产品信息
  55. *
  56. * @param string $pmid
  57. * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Query\Builder|null
  58. */
  59. public function getProductInfo(string $pmid)
  60. {
  61. return DB::table('product')->where('mid', $pmid)->where('is_delete', 0)->first();
  62. }
  63. /**
  64. * 获取版本信息
  65. *
  66. * @param $productId
  67. * @param string $osType
  68. * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Query\Builder|null
  69. */
  70. public function getProductVersion($productId, string $osType = 'windows')
  71. {
  72. // 如果有相同的版本,则获取最后一条 orderby
  73. return DB::table('product_version')
  74. ->where('product_id', $productId)
  75. ->where('os_type', $osType)
  76. ->where('is_delete', 0)
  77. ->orderBy("id", "desc")->first();
  78. }
  79. public function getAlipayOptions()
  80. {
  81. $configArr = config('alipay');
  82. $options = new Config();
  83. $options->protocol = 'https';
  84. $options->gatewayHost = 'openapi.alipay.com';
  85. $options->signType = 'RSA2';
  86. $options->appId = $configArr['app_id'];
  87. // 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
  88. $options->merchantPrivateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFKYt66K0H/hlU4mZrtQnLyYXUfPMN8rYaDuAZmVDeHECt0cLUAZbITukHEpqje8f+l4rV+WsB3Zuww9SgZJWWXNF+FJxHdjkUKpez7P/2wvCvgRXUWCPZY+AwCuXVtux+/sajuF0WKLqGhGOfbnw/yrPDOvJMMRWImEj8nSOKHHVjn4z9/eqA+dlLGAlNKdh9+BePo8tm3/3rnH/4I+WKd+9yCJ0xjFC+34Me7j+xxUo2RX7ajkSMM5CM+a1N9pbvGyX7YWZnJdXblhNMaAOxTyoSHiCglum7xkd/EXpoP+ueM9r8iiLUtgOR1kL52dXpNPKQJw0Mfw+iD36ml9zZAgMBAAECggEABRlo+RnRd9Zzk0Vzvq9k/HdO1csRgjfXy968nwzfEY+LgLNfJZqQ6sdXsY4in73Q013aAmS8BsVThIPcGPXhBI2MAYXI8PQ2z7W2TLoBeMFb9j4RcXeCHdo+bx+pCBj+Dt7KBmv7RFpzUI1WAkaaQhAdDByXLa9LTkgaAyaRR74fCFWMmCzr5QnFYodmPH+hmN2e9XU7+5XvMOmGsFgxWctAA2gK3v3FpzwZrU47FGXItpB+H7zoLErVOa7MchvN3Wd2Hi52H+UNzH1Pi+8d8XYbIsM0LDnRDhjNIIcGCG7YAUJg0ZK4Co0GPF6U1JH4bql4VLsvndnP/A2lEqIpTQKBgQDxe8EGMXF1IYB3yOgUGkm0/2Vau/xgKppSpgjGhtBs6ry9e3pBZNJW/HSovAiXYHCUVpj3iaFjco+DfVUkkORICPbkL0iKkqUYosOy6vRBgUVfnrdWx7LRg3vJn9m5Fa22ZE5dDafS67JdGpnlTb2v6DicjmkYFK05ORYODWdorwKBgQDRA7juJZRz3mRS0CcVFP25/6xJ4RETNfD5OkrWAeHKLvhkdbeMbVPublRc0SorBFMu8vmaKQxOuDlYC90AOCAOYG27IVfLAv5xxlKY+xpdqen727axxKd8+LpfdvuPQwiNHInNr4Uu8cOlDAfGxJt360Bz4X54gwG9W+P5ZErk9wKBgA7+NQTSaw3vr49AXRBqdWsUdFGG3GuIGZ7KCj9xPV2V0XQeR3/p55lZAVE8o3fql/LN0Z+E3w1SnpB2ZqPnjxTd4Z5XRTS9WBzIdkgUiGfMw+bk7tMngPW7KSNill0EeI2berYSU/ongiJ/tVBkXEOgsmsd+G5zUjH8Vl82+9WnAoGBAJ9+sa24q5HHkNLI2Cn0PLGkcnpl7ru0G9BzNQwdn4jDUvSGB6x2+Ocm9eVmD0GIKVnYO7PxwtyHI+sWEmzKZ1vRJar4hJ/8BuIXLoxigPocYNq6DK2WnSB2RPH4P3pQ8sOLlXSJjZ4HCv51MbHx8ZkOwb4rwnB/t+IhrtNuPuB9AoGBAL+G0RV2kTbBI9P1hiGtat4GJIeL64O60DHijxG9tGRUHxYFz6ErS7KlAtWU+FOco0cb/4cuhVnbdc7B6WHhTZZNrw+RKElryx5cjw43Yo8iZC1yvxmDrdyq5oxVR2uybGUhlOKhNskEFXgo6gkSSt/uurr7JhVS0yOwBRj27xa+";//$configArr['private_key'];
  89. $options->alipayCertPath = $configArr['alipay_cert_public_key_rsa2'];//'<-- 请填写您的支付宝公钥证书文件路径,例如:/foo/alipayCertPublicKey_RSA2.crt -->';
  90. $options->alipayRootCertPath = $configArr['alipay_root_cert'];//'<-- 请填写您的支付宝根证书文件路径,例如:/foo/alipayRootCert.crt" -->';
  91. $options->merchantCertPath = $configArr['app_cert_public_key'];//'<-- 请填写您的应用公钥证书文件路径,例如:/foo/appCertPublicKey_2019051064521003.crt -->';
  92. //注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
  93. $options->alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxSmLeuitB/4ZVOJma7UJy8mF1HzzDfK2Gg7gGZlQ3hxArdHC1AGWyE7pBxKao3vH/peK1flrAd2bsMPUoGSVllzRfhScR3Y5FCqXs+z/9sLwr4EV1Fgj2WPgMArl1bbsfv7Go7hdFii6hoRjn258P8qzwzryTDEViJhI/J0jihx1Y5+M/f3qgPnZSxgJTSnYffgXj6PLZt/965x/+CPlinfvcgidMYxQvt+DHu4/scVKNkV+2o5EjDOQjPmtTfaW7xsl+2FmZyXV25YTTGgDsU8qEh4goJbpu8ZHfxF6aD/rnjPa/Ioi1LYDkdZC+dnV6TTykCcNDH8Pog9+ppfc2QIDAQAB";//$configArr['ali_public_key'];
  94. //可设置异步通知接收服务地址(可选)
  95. $options->notifyUrl = $configArr['notify_url'];
  96. //可设置AES密钥,调用AES加解密相关接口时需要(可选)
  97. // $options->encryptKey = "<-- 请填写您的AES密钥,例如:aa4BtZ4tspm2wnXLb1ThQA== -->";
  98. return $options;
  99. }
  100. }