WechatMp.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\model\WechatConfig;
  4. use EasyWeChat\Factory;
  5. use think\facade\Log;
  6. class WechatMp extends Base
  7. {
  8. public function jssdk()
  9. {
  10. $param = request()->param();
  11. $rules = [
  12. "url|回调地址" => "require",
  13. "wechatcode|微信代码" => "require",
  14. ];
  15. $this->autoValid($rules, $param);
  16. $url = trim(urldecode2(input("url")));//回调地址
  17. $wechatcode = input("wechatcode");
  18. $apis = input("apis");
  19. $apiList = ["updateAppMessageShareData", "updateTimelineShareData", "onMenuShareAppMessage", "onMenuShareTimeline", "onMenuShareQQ", "onMenuShareWeibo", "onMenuShareQZone", "chooseWXPay", "openLocation", "getLocation", "scanQRCode", "chooseImage", "previewImage", "uploadImage", "downloadImage", "getLocalImgData", "startRecord", "stopRecord", "onVoiceRecordEnd", "playVoice", "pauseVoice", "stopVoice", "onVoicePlayEnd", "uploadVoice", "downloadVoice", "translateVoice", "hideMenuItems", "showMenuItems", "hideAllNonBaseMenuItem", "showAllNonBaseMenuItem", "closeWindow", "openProductSpecificView", "addCard", "chooseCard", "openCard"];
  20. if ($apis) {
  21. $apiList = explode(",", $apis);
  22. }
  23. $debug = input("debug", false);
  24. $wechatConfig = WechatConfig::getEasyWechatConfig($wechatcode);
  25. Log::record("wechatConfig:" . json_encode($wechatConfig, JSON_UNESCAPED_UNICODE), "debug");
  26. $app = Factory::officialAccount($wechatConfig);
  27. $jsticket = $app->jssdk->getTicket();
  28. $app->jssdk->setUrl($url);
  29. //$jssdk = $app->jssdk->getConfigArray($apiList, $debug);// ->buildConfig($apiList,$debug);
  30. $jssdkBuild = $app->jssdk->buildConfig($apiList, $debug);
  31. $jssdk = json_decode($jssdkBuild, true);
  32. // $jsticket1 = $app->jssdk->getTicket();
  33. // $jssdk["jsticket"] = $jsticket;
  34. // $jssdk["jsticket1"] = $jsticket1;
  35. // $jssdk["url1"] = $url;
  36. $jssdk["param"] = $param;
  37. $this->success($jssdk);
  38. //$jssdk=$app->jssdk->buildConfig(array $APIs, $debug = false, $beta = false, $json = true, array $openTagList = []);
  39. }
  40. }