File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11# 微信小程序php后端开发包
22
33### 功能描述
4- #### 封装微信小程序php端相关接口,比如php端微信用户信息解密(即登陆功能)、获取sessionKey等等。
4+ #### 封装微信小程序php端相关接口,比如php端微信用户信息解密(即登陆功能)、获取sessionKey等等。主要功能为后端用户信息解密。
5+
6+ ### 安装方法
7+
8+ 1 . 直接克隆项目或者下载已发行的版本
9+
10+ 2 . 使用composer安装(推荐)
11+
12+ ```
13+ composer require hillpy/mini-program-sdk
14+ ```
515
616### 使用方法
7- #### 简单使用请见demo.php
17+
18+ * 以下为代码实例
19+
20+ ```
21+ use hillpy\MiniProgramSDK;
22+
23+ $appid = '';
24+ $appsecret = '';
25+
26+ $MiniProgramSDK = new MiniProgramSDK($appid, $appsecret);
27+
28+ $params['code'] = '';
29+ $params['rawData'] = '';
30+ $params['signature'] = '';
31+ $params['encryptedData'] = '';
32+ $params['iv'] = '';
33+
34+ /**
35+ * 调用登录功能(解密用户信息)
36+ * 登录成功后,返回的数组包含code、msg、data三个元素
37+ * data又包含session3rd(缓存标识名)、sessionKey(通过微信接口获取,用于解密用户信息)、data(用户信息数组,比如昵称、头像等)
38+ * 之后建议将用户信息存库,并根据session3rd缓存用户信息。
39+ * session3rd可理解为用户登录令牌token,session3rd需返回给小程序端
40+ */
41+ $res = $MiniProgramSDK->login($params);
42+
43+
44+ if ($res['code'] == 100) {
45+ echo '登录成功';
46+ } else {
47+ echo $res['msg'];
48+ }
49+ ```
Original file line number Diff line number Diff line change 55$ appid = '' ;
66$ appsecret = '' ;
77
8- $ MiniProgramApi = new MiniProgramSDK ($ appid , $ appsecret );
8+ $ MiniProgramSDK = new MiniProgramSDK ($ appid , $ appsecret );
99
1010$ params ['code ' ] = '' ;
1111$ params ['rawData ' ] = '' ;
1212$ params ['signature ' ] = '' ;
1313$ params ['encryptedData ' ] = '' ;
1414$ params ['iv ' ] = '' ;
15- $ res = $ MiniProgramApi ->login ($ params );
15+ $ res = $ MiniProgramSDK ->login ($ params );
1616
1717if ($ res ['code ' ] == 100 ) {
1818 echo '登录成功 ' ;
Original file line number Diff line number Diff line change @@ -38,7 +38,7 @@ public function login($params = array())
3838 $ sessionData = $ this ->jscode2Session ($ params ['code ' ]);
3939 if (isset ($ sessionData ['errcode ' ])) {
4040 $ res ['code ' ] = -101 ;
41- $ res ['msg ' ] = ' sessionKey获取失败 ' ;
41+ $ res ['msg ' ] = $ this -> getErrorMsg ( $ sessionData [ ' errcode ' ]) ;
4242 return $ res ;
4343 }
4444 $ openid = $ sessionData ['openid ' ];
@@ -58,7 +58,7 @@ public function login($params = array())
5858 $ errCode = $ pc ->decryptData ($ params ['encryptedData ' ], $ params ['iv ' ], $ data );
5959 if (!empty ($ errCode )) {
6060 $ res ['code ' ] = -103 ;
61- $ res ['msg ' ] = ' 解密有误 ' ;
61+ $ res ['msg ' ] = $ this -> getErrorMsg ( $ errCode ) ;
6262 return $ res ;
6363 }
6464
@@ -133,4 +133,30 @@ private function getNonceStr($length = 16)
133133
134134 return $ str ;
135135 }
136+
137+ /**
138+ * 根据错误码获取错误信息
139+ * @param $errorCode
140+ * @return string
141+ */
142+ private function getErrorMsg ($ errorCode )
143+ {
144+ switch ($ errorCode ) {
145+ case '40029 ' :
146+ $ errorMsg = 'code 非法 ' ;
147+ break ;
148+ case '-41001 ' :
149+ $ errorMsg = 'sessionKey 非法 ' ;
150+ break ;
151+ case '-41002 ' :
152+ $ errorMsg = 'iv 非法 ' ;
153+ break ;
154+ case '-41003 ' :
155+ $ errorMsg = '解密失败 ' ;
156+ break ;
157+ default :
158+ $ errorMsg = '' ;
159+ }
160+ return $ errorMsg ;
161+ }
136162}
You can’t perform that action at this time.
0 commit comments