Gaoming13\WechatPhpSdk\Api::get_jsapi_config PHP Method

get_jsapi_config() public method

JS-SDK 获取JS-SDK配置需要的信息
public get_jsapi_config ( string $url = '', string $type = '', $jsonp_callback = 'callback' ) : mixed
$url string 可选:调取JS-SDK的页面url,默认为HTTP_REFERER
$type string 可选:返回配置信息的格式 json & jsonp, 默认为对象数组
return mixed Examples: ``` $api->get_jsapi_config(); $api->get_jsapi_config('http://www.baidu.com/'); ``` Result: ``` { errcode: 0, appId: "wx733d7f24bd29224a", timestamp: 1440073485, nonceStr: "5Ars5fLaLuPEXSgm", signature: "7f830aff99ff11fa931cae61b5b932b1f2c8ee10", url: "http://www.baidu.com/" } ``` Examples: ``` $api->get_jsapi_config('', 'json'); ``` Result: ``` {"errcode":0,"appId":"wx733d7f24bd29224a","timestamp":1440073708,"nonceStr":"caFkkXnOhVrcq3Ke","signature":"1c6c08ddf6e0e3c0fd33aafcb160a9f67d6b8f94","url":null} ``` Examples: ``` $api->get_jsapi_config('', 'jsonp'); $api->get_jsapi_config('', 'jsonp', 'callback'); ``` Result: ``` ;jQuery17105012127514928579_1440073858610({"errcode":0,"appId":"wx733d7f24bd29224a","timestamp":1440073875,"nonceStr":"vsGBSM0MMiWeIJFQ","signature":"616005786e404fe0da226a6decc2730624bedbfc","url":null}) ```
    public function get_jsapi_config($url = '', $type = '', $jsonp_callback = 'callback')
    {
        $jsapi_ticket = $this->get_jsapi_ticket();
        $nonce_str = SHA1::get_random_str();
        $timestamp = time();
        if ($url == '') {
            $url = $_SERVER['HTTP_REFERER'];
        }
        $signature = SHA1::get_jsapi_signature($jsapi_ticket, $nonce_str, $timestamp, $url);
        if ($signature === false) {
            $jsapi_config = array('errcode' => -1, 'errmsg' => 'get jsapi signature error.');
        } else {
            $jsapi_config = array('errcode' => 0, 'appId' => $this->appId, 'timestamp' => $timestamp, 'nonceStr' => $nonce_str, 'signature' => $signature, 'url' => $url);
        }
        if ($type == 'json' || $type == 'jsonp') {
            $jsapi_config = json_encode($jsapi_config);
            if ($type == 'jsonp' && isset($_REQUEST[$jsonp_callback]) && !empty($_REQUEST[$jsonp_callback])) {
                $jsapi_config = ';' . $_REQUEST[$jsonp_callback] . '(' . $jsapi_config . ')';
            }
        }
        return $jsapi_config;
    }