/** * 构造方法 */ public function __construct(Wechat $wechat) { $config = array('appId' => $wechat->getAppid(), 'nonceStr' => Util::randomString(), 'timestamp' => time()); $params = array('jsapi_ticket' => $wechat->getTicket(), 'noncestr' => $config['nonceStr'], 'timestamp' => $config['timestamp'], 'url' => Util::currentUrl()); $query = urldecode(http_build_query($params)); $config['signature'] = sha1($query); $this->config = $config; }
/** * 构造方法 */ public function __construct(Wechat $wechat) { $config = array('appId' => $wechat->getAppid(), 'nonceStr' => Util::randomString(), 'timestamp' => time()); $signGenerator = new SignGenerator(array('jsapi_ticket' => $wechat->getTicket(), 'noncestr' => $config['nonceStr'], 'timestamp' => $config['timestamp'], 'url' => Util::currentUrl())); $signGenerator->setHashType('sha1'); $signGenerator->setUpper(false); $config['signature'] = $signGenerator->getResult(); $this->config = $config; }
public static function getJssdk(Wechat $wechat, $apis, $debug = false, $asArray = false) { try { $ticket = $wechat->getTicket('jsapi'); } catch (TicketException $e) { exit($e->getMessage()); } $bag = new Bag(); $bag->set('jsapi_ticket', $ticket); $bag->set('timestamp', time()); $bag->set('noncestr', Util::randomString()); $bag->set('url', Util::currentUrl()); $signGenerator = new SignGenerator($bag); $signGenerator->setUpper(false); $signGenerator->setHashType('sha1'); $config = array('appId' => $wechat->getAppid(), 'nonceStr' => $bag->get('noncestr'), 'timestamp' => $bag->get('timestamp'), 'signature' => $signGenerator->getResult(), 'jsApiList' => $apis); if ($debug) { $config['debug'] = true; } return $asArray ? $config : JSON::encode($config); }