??? ??? ???? ?? ? ??? ??? ???? ?? ??? ?????? ??? ? ????.
Jul 25, 2018 pm 03:04 PM??? ?? ??? ???? ??? ???? ?? ?? ??? ?????? ?????. ???? ?? ??? ?????? ???? ??? ??? ?? ?????. ? ??? PHP ??? ? ?? ??? ??? ????. ??? ?? ???? ???? ????.
1. WeChat ?? ??? ??
1. appid, appsecret ????, ?????? ??
WeChat ?? ???? ????? ?? ??? ?????. ???? appId? appSecret??? ? ?? ????? ???? ???(appSecret? ? ?? ????? ???? ??, ??? ??? ????? ???? ???).
access_token? ?? ? IP ??????? ???? ???.
??? ??
????? ??
2. ???? ?? ??
?? ?? ?? ?? = "?? ?? =" ???? ?? ??? ???? ??, ??? ?? ???? ?? ?? ??? ?? 1? ??? ??(1?? ?? ??), 3? ??? txt ??? ?????? ??? ?? ????? ??????.
2. PHP ??? ??
1. ??? ?? ??
? ??? 2?? ?? ???? ?? ? ?? ???? ???.
PS: ????? ??? ?????? ???? ???. ??? ??? ?? ?? ???? ?? ??? ??? ? ????.
public static function getToken($appid, $appsecret){ $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret; return Curl::callWebServer($url); } 正確返回結(jié)果: { "access_token": "ACCESS_TOKEN", "expires_in": 7200 } 返回結(jié)果參數(shù)說明: 參數(shù) 說明 access_token 獲取到的全局token expires_in 憑證有效時間,單位:秒 錯誤返回結(jié)果: {"errcode": 40013, "errmsg": "invalid appid"} 返回結(jié)果參數(shù)說明: 返回碼 說明 -1 系統(tǒng)繁忙,此時請開發(fā)者稍候再試 0 請求成功 40001 AppSecret錯誤或者AppSecret不屬于這個公眾號,請開發(fā)者確認(rèn) AppSecret的正確性 40002 請確保grant_type字段值為client_credential 40164 調(diào)用接口的IP地址不在白名單中,請在接口IP白名單中進(jìn)行設(shè)置。(小程序及小游戲調(diào)用不要求IP地址在白名單內(nèi)。)
2. ???? ??? ?? ??? openid? ?? ??? ? ??? ??????. ?? ?? ??? ?? ??? ?? ??? ?? ?? ? ??? ???? ?? access_token? openid? ????.
??? ?? ?? ??
public static function getCode($appId, $redirect_uri, $state=1, $scope='snsapi_base', $response_type='code'){ $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appId.'&redirect_uri='.$redirect_uri.'&response_type='.$response_type.'&scope='.$scope.'&state='.$state.'#wechat_redirect'; header('Location: '.$url, true, 301); } 正確返回結(jié)果: 返回code碼,并且跳轉(zhuǎn)回調(diào)頁面$redirect_uri 錯誤返回結(jié)果: {"errcode": 10003, "errmsg": "redirect_uri域名與后臺配置不一致"} 返回結(jié)果參數(shù)說明: 返回碼 說明 10003 redirect_uri域名與后臺配置不一致 10004 此公眾號被封禁 10005 此公眾號并沒有這些scope的權(quán)限 10006 必須關(guān)注此測試號 10009 操作太頻繁了,請稍后重試 10010 scope不能為空 10011 redirect_uri不能為空 10012 appid不能為空 10013 state不能為空 10015 公眾號未授權(quán)第三方平臺,請檢查授權(quán)狀態(tài) 10016 不支持微信開放平臺的Appid,請使用公眾號Appid
getCode? ?? ?? ??? ?????? ??? access_token ? openid? ??
public static function getAccessToken($code, $appid, $appsecret, $grant_type='authorization_code'){ $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type='.$grant_type.''; return Curl::callWebServer($url); } 正確返回結(jié)果: { "access_token": "ACCESS_TOKEN", "expires_in": 7200, "refresh_token": "REFRESH_TOKEN", "openid": "OPENID", "scope": "SCOPE" } 返回參數(shù)說明 參數(shù) 描述 access_token 網(wǎng)頁授權(quán)接口調(diào)用憑證,注意:此access_token與基礎(chǔ)支持的access_token不同 expires_in access_token接口調(diào)用憑證超時時間,單位(秒) refresh_token 用戶刷新access_token openid 用戶唯一標(biāo)識,請注意,在未關(guān)注公眾號時,用戶訪問公眾號的網(wǎng)頁,也會產(chǎn)生一個用戶和公眾號唯一的OpenID scope 用戶授權(quán)的作用域,使用逗號(,)分隔 錯誤返回結(jié)果: {"errcode":40029, "errmsg":"invalid code"}
3. ??? ?? ??
2???? ?? openId? 1???? ?? ??? ???? ??? ?? ??
public static function getUserInfo($openId, $token){ $url = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token='.$token.'&openid='.$openId.'&lang=zh_CN'; return Curl::callWebServer($queryUrl, '', 'GET'); } 正確返回結(jié)果: { "subscribe": 1, "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", "nickname": "Band", "sex": 1, "language": "zh_CN", "city": "廣州", "province": "廣東", "country": "中國", "headimgurl":"http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", "subscribe_time": 1382694957, "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL" "remark": "", "groupid": 0, "tagid_list":[128,2], "subscribe_scene": "ADD_SCENE_QR_CODE", "qr_scene": 98765, "qr_scene_str": "" } 返回參數(shù)說明: 參數(shù) 說明 subscribe 用戶是否訂閱該公眾號標(biāo)識,值為0時,代表此用戶沒有關(guān)注該公眾號,拉取不到其余信息。 openid 用戶的標(biāo)識,對當(dāng)前公眾號唯一 nickname 用戶的昵稱 sex 用戶的性別,值為1時是男性,值為2時是女性,值為0時是未知 city 用戶所在城市 country 用戶所在國家 province 用戶所在省份 language 用戶的語言,簡體中文為zh_CN headimgurl 用戶頭像,最后一個數(shù)值代表正方形頭像大小(有0、46、64、96、132數(shù)值可選,0代表640*640正方形頭像),用戶沒有頭像時該項(xiàng)為空。若用戶更換頭像,原有頭像URL將失效。 subscribe_time 用戶關(guān)注時間,為時間戳。如果用戶曾多次關(guān)注,則取最后關(guān)注時間 unionid 只有在用戶將公眾號綁定到微信開放平臺帳號后,才會出現(xiàn)該字段。 remark 公眾號運(yùn)營者對粉絲的備注,公眾號運(yùn)營者可在微信公眾平臺用戶管理界面對粉絲添加備注 groupid 用戶所在的分組ID(兼容舊的用戶分組接口) tagid_list 用戶被打上的標(biāo)簽ID列表 subscribe_scene 返回用戶關(guān)注的渠道來源,ADD_SCENE_SEARCH 公眾號搜索,ADD_SCENE_ACCOUNT_MIGRATION 公眾號遷移,ADD_SCENE_PROFILE_CARD 名片分享,ADD_SCENE_QR_CODE 掃描二維碼,ADD_SCENEPROFILE LINK 圖文頁內(nèi)名稱點(diǎn)擊,ADD_SCENE_PROFILE_ITEM 圖文頁右上角菜單,ADD_SCENE_PAID 支付后關(guān)注,ADD_SCENE_OTHERS 其他 qr_scene 二維碼掃碼場景(開發(fā)者自定義) qr_scene_str 二維碼掃碼場景描述(開發(fā)者自定義) 錯誤結(jié)果: {"errcode":40013,"errmsg":"invalid appid"}
3.
? ???? ?? ??? ?????? ?????. ??? ??? ????.
public function isConcern($appId, $appSecret) { $param = ''; // 如果有參數(shù) $this->getCode($appId, U('callback', 'param='.$param), 1 ,'snsapi_base'); }
?? ? ??
public function callback(){ $isconcern = 0; $code = $this->_get('code'); $param = $this->_get('param'); $appId = C('appId'); // config中配置 $appSecret = C('appSecret'); $accessTokenInfo = $this->getAccessToken($code, $appId, $appSecret); $openId = $accessTokenInfo['openid']; $accessToken = $accessTokenInfo['access_token']; $token = $this->getToken($appId, $appSecret); $userInfo = $this->getUserInfo($openId, $token['access_token']); if($userInfo['subscribe'] == 1){ $this->assign('userInfo', $userInfo); $isconcern = 1; // 已關(guān)注 } else { $isconcern = 0; // 未關(guān)注 } $this->assign('openid', $openId); $this->display('page'); }
? ? ????? userInfo ? isconcern? ?? ? ????. isconcern? ??1?? ?? ??? ?????? ?????. ??? ??? ??? ???? ?????.
?? ??:
WeChat ?? ?? ?? ???? PHP ?? ??? ???? ???? ?? WeChat ?? ???? ??? ???? ?? PHP ???? WeChat ?? ??? ????? ??? ???? ?? php??: ???? ?? ? ???? -0 ?? ?? ?? ??? ??? ??? ??? ???? ?? ? ??? ??? ???? ?? ??? ?????? ??? ? ????.? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ?? ??? ??? ?? JavaScript? MediareCorder API? ?? PHP ???? ???? ?????. 2. PHP? ???? ?? ??? ???? STTAPI (? : Google ?? Baidu ?? ??)? ???? ???? ?????. 3. PHP? ???? AI ??? (? : OpenAigpt)? ????. 4. ?? ?? PHP? TTSAPI (? : Baidu ?? Google ?? ??)? ???? ??? ?? ??? ?????. 5. PHP? ?? ??? ??? ??? ??? ?? ?? ??? ?????. ?? ????? PHP? ?? ???? ?? ?? ?? ??? ??? ?????.

PHP?? ?? ?? ??? ???? ?? ??? ? ???? ?? ??? ???? ?? ??? ???? ???? ????. 1. ?? ?? ??? ?? ??? URL ? ?? ??? ????. 2. UrlenCode? ???? ?? ??? ???????. 3. ? ???? ????? ?? ?? ??? ? ?? ??? ?????. 4. ???? ???? ?? ? ? ??? ??? ??? ??? ?????. 5. ??? ?? ??? ????? ?? ????? OG ??? ???? ?????. 6. XSS ??? ???? ?? ??? ??? ?????. ? ???? ??? ??? ???? ??? ?? ?? ??? ??? ???? ??? ?? ??? ?????.

AI? ??? ??? ?? ?? ? ?? ???? ????? ?? ??? ??????. 1. Baidu, Tencent API ?? ?? ?? NLP ?????? ?? ??? AI ?? ?? API? ??????. 2. PHP? ? ?? guzzle? ?? API? ???? ?? ??? ??????. 3. ?? ????? ?? ?? ??? ???? ???? ???? ??? ??? ? ????. 4. ?? ?? ? ?? ???? ?? PHP-L ? PHP_CODESNIFFER? ??????. 5. ???? ????? ???? ?? ?? ??? ?????? ??? ??????. AIAPI? ??? ? ???, ?? ??, ?? ? PHP ?? ??? ??? ???. ?? ???? PSR ??? ???, ??? ????? ????, ?? ??? ???, ????? ??? ????, X? ???????.

1. ?? ???? ??? ??? ?????? ?? ?? ??? ??, ??? ?? ???? ??? (? : ?? ???, ? ? ??), ?? ??? ?? ???? ???? ? ?? ?? ??? ??? ?? ??? ????????. 2. ?? ??? ??? ?? ? ??? ???? ?? ?? ?? ???? ?? ? ?? AUDIT ?? ??? ??? ? ????? ????? ??? ???????. 3. ?? ?? ??? ?? ??? ???????. Recaptchav3 ???? ??, ??? ?? ?? ?? ?? ??, IP ? ?? ??? ??? ??? ?? ???? ??? ?? ??? ????? ??? ???? ????? ??? ?????.

PHP? AI ??? ??? ?? ????? ??? API? ?? ?????. ??? ??? ????? ? ??? ???? ?????. API ??? ?? ?? ??? ???? ??? ??? ???? ???? ? ????. 2. ?? ?? ???? guzzle ?? curl? ???? HTTP ??? ???, JSON ??? ??? ? ???, API ? ?? ??, ??? ? ?? ??? ???? ??, ??? ?? ?? ? ? ?? ????, ??? ?? ? ?????? ?????. 3. ???? ???? ?? ???? API ??, ?? ? ??? ?? ??, ??? ?? ??, ?? ?? ? ??? ??? ??? ?????. ?? ??? ??? ??? ? ??? ???? Propt ?? ? ?? ?? ??, ??? ?? ? ?? ????, ?? ?? ?? ???? ? ??? ?? ? ???? ????? ?????.

PHP? ?????? ????? ?? ?? ?? ???? ???? ?? ???? ???? ?? ?? ???? ?????. 2. ?? ??? ???? ???? ?? ??? ?? ? ??? ??? ???? ?? API/Webhook ??? ??? ?? ???? ??? ??? ??? ??? ?????. 3. ?? ????? ?? ??, ??/???? ????, ???? ??, ???? ? ??? ?????? ????? ?? ??? ???? ???? ?? Dingtalk, SMS ?? ??? ???? ??? ?????? ???? ?? ? ??? ??? ????? ?? ??? ???? ???????.

PhpisstillRelevantinmodernenterpriseenvironments.1. Modernphp (7.xand8.x)? ??? ??, ??? ??, jitcompilation ? modernsyntax, mateitsuilableforlarge-scalepplications

MAC ?? ???? ? ??? ?? ??? ????? ?? ? ??? ????? ????. 1. ???? ???? ???? ???? ??? ?? ? ?? ????? ??? ???? ??????. 2. ????? ?? ?? ? ??? ???? ???? ?? ?? ????? ??? ???? ?????. 3. ??? ?? ??? ???? ?? ???? ?? ???? ?? ???? ?? ? ? ????. 4. ??? ????? ????? ? ?? ?? ? ??? ?? ? ??? ??????.
