AppMp.php 2.1 KB

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