AppOpen.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace app\common\library\easywechat;
  3. use EasyWeChat\Factory;
  4. use app\common\exception\BaseException;
  5. use app\common\model\app\AppOpen as AppOpenModel;
  6. /**
  7. * 微信开放平台
  8. */
  9. class AppOpen
  10. {
  11. public static function getWxPayApp($app_id){
  12. // 获取当前app信息
  13. $wxConfig = AppOpenModel::getAppOpenCache($app_id);
  14. // 验证appid和appsecret是否填写
  15. if (empty($wxConfig['openapp_id']) || empty($wxConfig['openapp_secret'])) {
  16. throw new BaseException(['msg' => '请到 [后台-应用-app设置] 填写appid 和 appsecret']);
  17. }
  18. if (empty($wxConfig['cert_pem']) || empty($wxConfig['key_pem'])) {
  19. throw new BaseException(['msg' => '请先到后台app设置填写微信支付证书文件']);
  20. }
  21. // cert目录
  22. $filePath = root_path() . 'runtime/cert/appopen/' . $wxConfig['app_id'] . '/';
  23. $config = [
  24. 'app_id' => $wxConfig['openapp_id'],
  25. 'mch_id' => $wxConfig['mchid'],
  26. 'key' => $wxConfig['apikey'], // API 密钥
  27. // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
  28. 'cert_path' => $filePath . 'cert.pem',
  29. 'key_path' => $filePath . 'key.pem',
  30. 'sandbox' => false, // 设置为 false 或注释则关闭沙箱模式
  31. ];
  32. return Factory::payment($config);
  33. }
  34. }