原文链接:blog.demokn.com/posts/troub…
项目中使用了 overtrue/wechat 微信开发相关SDK包,最近需要用的个别接口,SDK中竟然没有封装。 想想应该不会呀,毕竟这个包这么好用,而且开发一直很活跃。
下面以 开放平台 > 第三方平台 > 查询服务商的当月提审限额(quota)和加急次数 接口为例。
- 在本地项目中全局搜了一下接口请求地址
wxa/queryquota,确实没有搜到; - 更新一下本地的包
composer update overtrue/wechat -vvv, 再搜一遍,依旧没有;(新接口还没接入?) - 在该包的 Github 仓库 同样也搜一下接口请求地址,竟然搜到了;(新增的代码还没发布?)
- 切换到该包的 最新Tag 4.2.11, 这段代码依旧存在,说明已经发布了啊;
- 再到 packagist.org 确认一下,该包的最新稳定版确实是 4.2.11 啊,确认已经成功发布了;
那就说明是我本地代码的问题了,继续排查本地
- 查看
composer.json中指定的包版本是"overtrue/wechat": "^4.2",这也没毛病啊; - 查看
composer.lock中安装的具体版本是"version": "4.3.0",这下把我整懵了(哪来的 4.3.0 的版本?比Github上的最新版还要新?); - 再看
composer.lock,"time": "2019-08-13T11:53:50+00:00"表示本地安装版本的最后更新时间,这也不对啊,最新版4.2.11的最后更新时间是2019-11-27才对; - 再看
composer.lock,"reference": "426ea825664bcb1078f59a060ac07645e1e6fd9f"表示本地安装版本的commit hash,这和仓库中的最新版的 commit hash 也对不上; - 在Github仓库中查了一下这个 commit hash 426ea825664bcb1078f59a060ac07645e1e6fd9f, 确实查到了, 而且更新时间也跟这个 commit hash 对上了;
- 因为本地使用的是 阿里云的composer镜像 ,就怀疑是不是镜像出了问题;那就试试从源码更新
composer update overtrue/wechat --prefer-source -vvv,更新后还是没变化; - 删除本地已安装的代码
rm -rf vendor/overtrue,再试一次从源码更新composer update overtrue/wechat --prefer-source -vvv,成功安装了 4.2.11 的版本,composer.lock中显示的最后更新时间和commit hash都对上了,新接口相关的代码也出现了; - 然后又试了一下,删除本地已安装的代码,还是从镜像安装
composer update overtrue/wechat -vvv,依旧成功安装了 4.2.11 的版本; - 至此,问题解决,原因不详~
贴一下更新成功前后的 composer.lock 关于该包的信息描述。
更新成功前:
{
"name": "overtrue/wechat",
"version": "4.3.0",
"source": {
"type": "git",
"url": "https://github.com/overtrue/wechat.git",
"reference": "426ea825664bcb1078f59a060ac07645e1e6fd9f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/overtrue/wechat/zipball/426ea825664bcb1078f59a060ac07645e1e6fd9f",
"reference": "426ea825664bcb1078f59a060ac07645e1e6fd9f",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"easywechat-composer/easywechat-composer": "^1.1",
"ext-fileinfo": "*",
"ext-openssl": "*",
"ext-simplexml": "*",
"guzzlehttp/guzzle": "^6.2",
"monolog/monolog": "^1.22",
"overtrue/socialite": "~2.0",
"php": ">=7.1",
"pimple/pimple": "^3.0",
"psr/simple-cache": "^1.0",
"symfony/cache": "^3.3 || ^4.3",
"symfony/http-foundation": "^2.7 || ^3.0 || ^4.0",
"symfony/psr-http-message-bridge": "^0.3 || ^1.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.15",
"mikey179/vfsstream": "^1.6",
"mockery/mockery": "^1.0",
"phpstan/phpstan": "^0.11.12",
"phpunit/phpunit": "~6.5",
"symfony/event-dispatcher": "^4.0"
},
"suggest": {
"symfony/event-dispatcher": "Required to use EasyWeChat events component (^4.0)."
},
"type": "library",
"autoload": {
"psr-4": {
"EasyWeChat\": "src/"
},
"files": [
"src/Kernel/Support/Helpers.php",
"src/Kernel/Helpers.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "overtrue",
"email": "anzhengchao@gmail.com"
}
],
"description": "微信SDK",
"keywords": [
"sdk",
"wechat",
"weixin",
"weixin-sdk"
],
"time": "2019-08-13T11:53:50+00:00"
}
更新成功后:
{
"name": "overtrue/wechat",
"version": "4.2.11",
"source": {
"type": "git",
"url": "https://github.com/overtrue/wechat.git",
"reference": "853e0772e6aa53a71edf1b5d251c7ff1e6b2a2bf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/overtrue/wechat/zipball/853e0772e6aa53a71edf1b5d251c7ff1e6b2a2bf",
"reference": "853e0772e6aa53a71edf1b5d251c7ff1e6b2a2bf",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"easywechat-composer/easywechat-composer": "^1.1",
"ext-fileinfo": "*",
"ext-openssl": "*",
"ext-simplexml": "*",
"guzzlehttp/guzzle": "^6.2",
"monolog/monolog": "^1.22 || ^2.0",
"overtrue/socialite": "~2.0",
"php": ">=7.1",
"pimple/pimple": "^3.0",
"psr/simple-cache": "^1.0",
"symfony/cache": "^3.3 || ^4.3",
"symfony/event-dispatcher": "^4.3",
"symfony/http-foundation": "^2.7 || ^3.0 || ^4.0",
"symfony/psr-http-message-bridge": "^0.3 || ^1.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.15",
"mikey179/vfsstream": "^1.6",
"mockery/mockery": "^1.2.3",
"phpstan/phpstan": "^0.11.12",
"phpunit/phpunit": "^7.5"
},
"type": "library",
"autoload": {
"psr-4": {
"EasyWeChat\": "src/"
},
"files": [
"src/Kernel/Support/Helpers.php",
"src/Kernel/Helpers.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "overtrue",
"email": "anzhengchao@gmail.com"
}
],
"description": "微信SDK",
"keywords": [
"sdk",
"wechat",
"weixin",
"weixin-sdk"
],
"time": "2019-11-27T16:38:00+00:00"
}