PHPackages                             phalapi/wechatmini - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. phalapi/wechatmini

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

phalapi/wechatmini
==================

PhalApi 2.x 微信小程序扩展

121.1k4[3 issues](https://github.com/JamesLiuquan/wechatmini/issues)[1 PRs](https://github.com/JamesLiuquan/wechatmini/pulls)PHP

Since Jan 13Pushed 5y ago1 watchersCompare

[ Source](https://github.com/JamesLiuquan/wechatmini)[ Packagist](https://packagist.org/packages/phalapi/wechatmini)[ RSS](/packages/phalapi-wechatmini/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependenciesVersions (1)Used By (0)

wechatmini
==========

[](#wechatmini)

PhalApi 2.x 微信小程序扩展

安装和配置
-----

[](#安装和配置)

修改项目下的composer.json文件，并添加：

```
    "phalapi/wechatmini":"dev-master"

```

然后执行`composer update`。

安装成功后，添加以下配置到./config/app.php文件：
--------------------------------

[](#安装成功后添加以下配置到configappphp文件)

```
'Wechatmini' => array(
        'appid' => '你的appid',
        'secret_key' => '微信小程序后台生成的secret_key，请勿随便修改',
        'mch_id' => '商户号',//不用支付可以不用配置
        'mch_key' => '支付秘钥',//不用支付可以不用配置
    ),
```

注册
--

[](#注册)

在/path/to/phalapi/config/di.php文件中，注册：

```
$di->wechatmini = function() {
        return new \PhalApi\Wechatmini\Lite();
};
```

说明
--

[](#说明)

获取access\_token和文本检测需要用到access\_token，所以需要给public文件夹给予777权限。

使用
--

[](#使用)

### 获取openid

[](#获取openid)

```
\PhalApi\DI()->wechatmini->getOpenid('小程序返回请求的code');
```

返回结果：

返回字段说明ret状态码：200表示数据获取成功，其他错误码可参考小程序错误码说明data返回数据，openid获取失败时为空data.openid用户唯一标识data.session\_key会话密钥data.unionid用户在开放平台的唯一标识符，满足UnionID下发条件的情况下这个才有msg错误提示信息：如：code been used, hints: \[ req\_id: OpwajA01912023 \]### 获取Unionid

[](#获取unionid)

```
\PhalApi\DI()->wechatmini->getUnionid('小程序返回请求的code'，'会话密钥', '解码内容');
```

返回结果：

返回字段说明ret状态码：200表示数据获取成功，其他错误码可参考小程序错误码说明data返回数据，openid获取失败时为空data.openid用户唯一标识data.session\_key会话密钥data.unionid用户在开放平台的唯一标识符，满足UnionID下发条件的情况下这个才有msg错误提示信息：如：code been used, hints: \[ req\_id: OpwajA01912023 \]### 获取access\_token

[](#获取access_token)

说明：直接获取access\_token，不加任何处理，有次数限制，用此方法获取后可能会导致已经获取且在使用的token失效

```
\PhalApi\DI()->wechatmini->getToken();
```

返回结果：

返回字段说明ret状态码：200表示数据获取成功data返回数据，access\_token获取失败时为空data.access\_token获取到的凭证data.expires\_in凭证有效时间，单位：秒msg错误提示信息：如：invalid appid hint: \[EAncHA01641466\]### 获取access\_token并且保存服务器

[](#获取access_token并且保存服务器)

说明：获取access\_token，由于微信对access\_token获取次数有限制，此方法将token存服务器，需要时直接取服务器token，过期自动更新token

```
\PhalApi\DI()->wechatmini->getAccessToken();
```

返回结果：

返回字段说明ret状态码：200表示数据获取成功data返回数据，access\_token获取失败时为空data.access\_token获取到的凭证data.expires\_in凭证过期时间戳msg错误提示信息：如：invalid appid hint: \[EAncHA01641466\]### 文本违规检测

[](#文本违规检测)

说明：检查一段文本是否含有违法违规内容。应用场景举例：用户个人资料违规文字检测；媒体新闻类用户发表文章，评论内容检测；游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。频率限制：单个 appId 调用上限为 2000 次/分钟，1,000,000 次/天

```
\PhalApi\DI()->wechatmini->msgSecCheck('待检测内容');
```

返回结果：

返回字段说明ret状态码：200表示数据获取成功data返回数据，ok表示内容正常;risky表示含有违法违规内容msg错误提示信息：如：invalid credential, access\_token is invalid or not latest hint: \[qaUhIa01589041\]### 发送模板消息

[](#发送模板消息)

说明：基于微信的通知渠道，我们为开发者提供了可以高效触达用户的模板消息能力，以便实现服务的闭环并提供更佳的体验。

```
\PhalApi\DI()->wechatmini->sendWeAppMessage('touser', 'formid', 'template_id', 'page', 'emphasis_keyword', 'data');
```

参数说明：

参数必填说明touser是接收者（用户）的 openidformid是表单提交场景下，为 submit 事件带上的 formId；支付场景下，为本次支付的 prepay\_idtemplate\_id是所需下发的模板消息的id（微信公众平台模板消息选择获取）page否点击模板卡片后的跳转页面，仅限本小程序内的页面。支持带参数,（示例index?foo=bar）。该字段不填则模板无跳转。emphasis\_keyword否模板需要放大的关键词，不填则默认无放大data是模板内容，不填则下发空模板示例：

```
$openid = '接收者（用户）的 openid';
$form_id = "小程序端获取的formid",
$template_id = 'eb_azL3MW76Hn_U9yu6GZOf5Lm90AROUruI1OdECYUQ';
$page = 'pages/index/index';
$emphasis_keyword = 'keyword2.DATA';
$data = array(
    "keyword1" => array("value" => "我们已收到您的反馈意见，感谢您的使用", "color" => "#173177"),
    "keyword2" => array("value" => "感谢使用Phalapi", "color" => "#173177"));
$res = \PhalApi\DI()->wechatmini->sendWeAppMessage($openid, $formid, $template_id, $page,$emphasis_keyword, $data);
return $res;
```

返回结果：

返回字段说明ret状态码：200表示数据获取成功,其他错误码可参考小程序错误码说明data返回数据，ok表示成功发送模板消息msg错误提示信息：错误提示信息：如：form id used count reach limit hint: \[P90MbA0846ge20\]错误码说明：

返回码说明40037template\_id不正确41028form\_id不正确，或者过期41029form\_id已被使用41030page不正确45009接口调用超过限额（目前默认每个帐号日调用限额为100万）### 微信预支付

[](#微信预支付)

说明：商户在小程序中先调用该接口在微信支付服务后台生成预支付交易单，返回正确的预支付交易后调起支付。

```
\PhalApi\DI()->wechatmini->WxPay('付款者openid', '付款金额', '商品描述');
```

返回结果：

返回字段说明ret状态码：200表示数据获取成功data返回数据,数据获取失败时为空data.appId微信分配的小程序IDdata.timeStamp时间戳从1970年1月1日00:00:00至今的秒数,即当前的时间data.nonceStr随机字符串，长度为32个字符以下。data.package统一下单接口返回的 prepay\_id 参数值data.signType签名算法，暂支持 MD5data.paySign签名,具体签名方案参见小程序支付接口文档;msg错误提示信息：如：invalid credential, access\_token is invalid or not latest hint: \[qaUhIa01589041\]### 微信小程序数据解密

[](#微信小程序数据解密)

说明：小程序可以通过各种前端接口获取微信提供的开放数据。 考虑到开发者服务器也需要获取这些开放数据，微信会对这些数据做签名和加密处理。 开发者后台拿到开放数据后可以对数据进行校验签名和解密，来保证数据不被篡改。

```
\PhalApi\DI()->wechatmini->WXBizDataCrypt('sessionKey', 'encryptedData', 'iv');
```

参数说明：

参数必填说明sessionKey是会话密钥，wx.login可获取encryptedData是包括敏感数据在内的完整用户信息的加密数据iv是加密算法的初始向量返回结果：

返回字段说明ret状态码：200表示数据获取成功,其他错误码可参考小程序错误码说明data返回数据，返回解密后的数据msg错误提示信息：错误提示信息错误码说明：

返回码说明-41001IllegalAesKey-41002IllegalIv-41003IllegalBuffer

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/35d70b1236f8f67d96ba3da4ba88889faf2837ff8f7ab62acc54fe6cb4992c87?d=identicon)[dogstarhuang](/maintainers/dogstarhuang)

---

Top Contributors

[![StormLau](https://avatars.githubusercontent.com/u/20901488?v=4)](https://github.com/StormLau "StormLau (18 commits)")

### Embed Badge

![Health badge](/badges/phalapi-wechatmini/health.svg)

```
[![Health](https://phpackages.com/badges/phalapi-wechatmini/health.svg)](https://phpackages.com/packages/phalapi-wechatmini)
```

###  Alternatives

[phpoffice/math

Math - Manipulate Math Formula

3111.7M8](/packages/phpoffice-math)[grasmash/composerize-drupal

Convert a non-Composer managed Drupal application into a Composer-managed application.

12819.4k1](/packages/grasmash-composerize-drupal)[acacha/llum

Llum (light in catalan language) illuminates your Laravel projects.

10926.0k](/packages/acacha-llum)[fab/rss-display

Fetch a RSS / Atom Feed and display its content on the Frontend.

1252.3k](/packages/fab-rss-display)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
