首先呢适滓,先進入微信公眾平臺敦迄,獲取APPID和APPsecret。
1凭迹、控制器
進入自己的項目中罚屋,創(chuàng)建一個控制器,WeChatPay.class.php蕊苗;具體代碼如下
/*
* 這里接受兩個參數(shù)沿后,signature => 簽名,code =>?
*/
public functionwxLogin($code='', $signature='') {
? ? ? ?$APPID = C('WX.appid');
???????$AppSecret = C('WX.AppSecret');
???????$url ="https://api.weixin.qq.com/sns/jscode2session?appid=".$APPID."&secret=".$AppSecret."&js_code=".$code."&grant_type=authorization_code";
???????$arr = curlGet($url);? //一個使用curl實現(xiàn)的get方法請求
???????$arr = json_decode($arr,true);
???????$openid = $arr['openid'];? //微信openid
???????$session_key = $arr['session_key'];
???????$rawData = $_GET['rawData'];
???????//數(shù)據(jù)簽名校驗
???????$signature2 = sha1($rawData.$session_key);? //記住不應(yīng)該用TP中的I方法朽砰,會過濾掉必要的數(shù)據(jù)
???????if ($signature != $signature2) {
???????????????echo '-1'.','.'數(shù)據(jù)簽名驗證失敗';die;
???????}
???????//開發(fā)者如需要獲取敏感數(shù)據(jù)尖滚,需要對接口返回的加密數(shù)據(jù)( encryptedData )進行對稱解密
???????Vendor("PHP.wxBizDataCrypt");?//加載解密文件喉刘,在官方有下載
???????$encryptedData = $_GET['encryptedData'];
???????$iv = $_GET['iv'];
???????$pc = new \WXBizDataCrypt($APPID, $session_key);
???????$errCode = $pc->decryptData($encryptedData, $iv, $data);? //其中$data包含用戶的所有數(shù)據(jù)
???????if ($errCode != 0) {
???????????????echo '-1'.','.'解密數(shù)據(jù)失敗';die;
???????}else {
???????????//用戶信息入庫,這里我將用戶的基本信息存入數(shù)據(jù)庫中
???????????$wxuser = M('users');
???????????$user_info = $wxuser->where(array('openid'=>$openid))->find();
???????????$user_id = $user_info['user_id'];
???????????$raw = json_decode($rawData,true);
???????????$raw['nickname'] = trim($raw['nickName']);
???????????$raw['name'] = $raw['nickName'];
???????????$raw['last_time'] = time();
???????????$new_user = 0; //老用戶
???????????if(!$user_info){
??????????????? $raw['openid'] = $openid;
??????????????? $raw['add_time'] = time();
??????????????? $user_id =$wxuser->add($raw); //新用戶id
??????????????? if(!$user_id){
??????????????????????? echo '-1'.','.'服務(wù)器出錯漆弄,授權(quán)失敗睦裳。';die;
??????????????? }
??????????????? $new_user = 1; //新用戶
???????????}else {
??????????????????? $ures =$wxuser->where(array('user_id'=>$user_id))->setField($raw);
???????????}
???????????$nickName = $raw['nickName']?:$user_info['nickName']; //用戶昵稱
???????}
???????//生成第三方3rd_session
???????$session3rd? = null;
???????$strPol ="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
???????$max = strlen($strPol)-1;
???????for($i=0;$i<16;$i++){
???????????????$session3rd .=$strPol[rand(0,$max)];
???????}
???????$result = '1'.','.$session3rd.','.$user_id.','.$nickName.','.$new_user;
???????echo $result;die;
???????? }
2、配置文件
我把配置文件放在了 Common/Conf/config.php 里面
3撼唾、SDK
SDK后面再上傳
到這里小程序授權(quán)就全部完成了廉邑。