/** * 微信授权方法 * @return json */ public function index() { $openid = Request::input('openid'); $code = Request::input('code'); $scope = Request::input('scope') ?: Wx::SCOPE_BASE; $wxConfig = Config::get('wxconfig'); $wxHelper = Wx::getInstance($wxConfig['appid'], $wxConfig['secret'], $scope); if ($openid) { $oauthData = $wxHelper->oauthOpenid($openid); if ($oauthData) { return Arr::camelKey($oauthData); } } if ($code) { $oauthData = $wxHelper->oauthCode($code); if ($oauthData) { return Arr::camelKey($oauthData); } } $url = Request::input('url'); if (!$url) { Response::json(['errcode' => 4004]); } $jumpUrl = $wxHelper->getJumpUrl($url); return Response::json(['errcode' => 4003, 'data' => $jumpUrl]); }
/** * 微信卡卷签名 * @return json */ public function card() { $validator = Validator::make(Request::input(), ['cardIds' => 'required|array']); if ($validator->fails()) { return Response::json($validator->errors()->first(), 400); } $cardIds = Request::input('cardIds'); $wxConfig = Config::get('wxconfig'); $wx = Wx::getInstance($wxConfig['appid'], $wxConfig['secret']); $cardList = []; foreach ($cardIds as $cardId) { $cardId = trim($cardId); $timestamp = time(); $nonceStr = Str::quickRandom(32); $signature = $wx->getCardSignature($cardId, $timestamp, $nonceStr); if (!$signature) { return Response::json(['errcode' => 5001, 'errmsg' => '签名失败!']); } $cardConfig = ['cardId' => $cardId, 'cardExt' => json_encode(['signature' => $signature, 'timestamp' => $timestamp, 'nonce_str' => $nonceStr])]; array_push($cardList, $cardConfig); } return Response::json(['errcode' => 0, 'data' => $cardList]); }