Skip to content

Commit f3f1d9e

Browse files
1. 完善错误回复 2. 完善README.md
1 parent fa80a21 commit f3f1d9e

3 files changed

Lines changed: 74 additions & 6 deletions

File tree

README.md

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,49 @@
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+
```

demo.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
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

1717
if ($res['code'] == 100) {
1818
echo '登录成功';

src/MiniProgram.php

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)