cdkwtech / askpsyc
妙知心理开放平台 SDK(量表/题目/测评报告)
1.0.0
2026-08-28 14:35 UTC
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^10.1
This package is not auto-updated.
Last update: 2026-08-29 09:41:57 UTC
README
妙知心理开放平台 SDK(PHP >= 7.4,零第三方依赖)。
安装
composer require cdkwtech/askpsyc
本地开发(path 仓库方式):
{
"repositories": [{"type": "path", "url": "../askpsyc", "options": {"symlink": true}}]
}
快速开始
use Cdkwtech\Askpsyc\AskpsycClient; $client = new AskpsycClient('你的appid', '你的appsecret'); // 量表列表(分页) foreach ($client->scales(1, 20) as $scale) { echo $scale->getId(), ' ', $scale->getTitle(), ' ¥', $scale->getDiscountedPrice(), PHP_EOL; } // 量表总数(分页用) $count = $client->scaleCount(); // 量表详情 $detail = $client->scaleDetail(35); echo $detail->getTitle(), ' 共 ', $detail->getScale()->getQuestionNum(), ' 题', PHP_EOL; // 量表题目(answers 键用于交卷) $questions = $client->questions(35); // 提交答卷拿报告地址 $report = $client->submit(35, 3, array_fill(0, 100, 'A')); echo $report->getUrl(), PHP_EOL;
签名
与官方文档一致:参数(含 appid、timestamp,不含 sign)按 key 排序 →
http_build_query → 拼接 appsecret → md5。SDK 内部自动完成,无需手工参与。
配置
$client = new AskpsycClient($appid, $appSecret, [ 'base_url' => 'http://business.askpsyc.com/', // 默认值 'timeout' => 10, // 秒,默认 10 ]);
注意:实测服务端 /scale 接口当前忽略分页参数(详见 docs/usage.md 已知服务端行为)。
错误处理
- 网络错误 / HTTP 非 2xx / 非法 JSON / 信封
status != success或code != 200→ 抛Cdkwtech\Askpsyc\Exception\AskpsycException(getCode()为错误码,getRawResponse()携带服务端原始响应) - 参数非法 →
InvalidArgumentException
测试
composer test # PHPUnit(离线,不打真实接口) composer analyse # PHPStan level 5(PHP 7.4 语法校验)
接口与字段详情见 docs/usage.md。