cdkwtech/askpsyc

妙知心理开放平台 SDK(量表/题目/测评报告)

Maintainers

Package info

github.com/lind87614/open-askpsyc

pkg:composer/cdkwtech/askpsyc

Transparency log

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-08-28 14:35 UTC

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;

签名

与官方文档一致:参数(含 appidtimestamp,不含 sign)按 key 排序 → http_build_query → 拼接 appsecretmd5。SDK 内部自动完成,无需手工参与。

配置

$client = new AskpsycClient($appid, $appSecret, [
    'base_url' => 'http://business.askpsyc.com/',  // 默认值
    'timeout'  => 10,                               // 秒,默认 10
]);

注意:实测服务端 /scale 接口当前忽略分页参数(详见 docs/usage.md 已知服务端行为)。

错误处理

  • 网络错误 / HTTP 非 2xx / 非法 JSON / 信封 status != successcode != 200 → 抛 Cdkwtech\Askpsyc\Exception\AskpsycExceptiongetCode() 为错误码, getRawResponse() 携带服务端原始响应)
  • 参数非法 → InvalidArgumentException

测试

composer test      # PHPUnit(离线,不打真实接口)
composer analyse   # PHPStan level 5(PHP 7.4 语法校验)

接口与字段详情见 docs/usage.md