shaggyrec/sumsubphp

SumSub的PHP客户端

v1.0.11 2022-12-19 19:28 UTC

This package is auto-updated.

Last update: 2024-09-19 23:53:21 UTC


README

sumsub.com的PHP API客户端

安装

composer require shaggyrec/sumsubphp

使用

use Shaggyrec\SumSubClient\SumSubClient;

$sumSub = SumSubClient::getInstance('App Token', 'APP Secret');

$sumSub->getAccessToken('userId', 'levelName');

方法

获取访问令牌

$sumSub->getAccessToken('userId', 'levelName');

创建申请人

申请人代表一个物理人。它可能附有多个身份证明文件,如身份证或护照。可以为同一申请人附加许多不同文档的照片。

$sumSub->createApplicant(
    'externalUserId',
    'phone',
    'email',
    new FixedInfo(
        [
            firstName => 'firstName', 
            lastName => '',
            middleName => '',
            firstNameEn => '',
            lastNameEn => '',
            middleNameEn => '',
            legalName => '',
            gender => 'M',
            dob => '',
            placeOfBirth => '',
            country => '',
            nationality => '',
            addresses => [],
        ],
    )
    'levelName',
);

更改所需文档集(级别)

此方法根据提供的级别更新所需文档列表。如果您需要添加一个检查步骤,例如,最初只请求了身份证件和自拍照,检查完成后需要获取地址证明,因此您必须将一个额外的步骤添加到当前的所需文档列表中。

$sumSub->changeLevel('applicantId', 'levelName');

添加身份证件

该方法获取一个多部分表单:ID证件JSON元数据和可选的证件照片。如果已存在此类型的ID证件,其数据将合并。如果新对象中也存在现有数据,则将覆盖现有数据。然而,仍将添加新的图片。如果尚未知道文档元数据,只需发送类型和国家即可。例如,“PASSPORT”和“GBR”。这两个字段是必填项。

use Shaggyrec\Sumsubphp\DTO\FileMetadata;

$sumSub->addDoc(
    '$applicantId',
    new FileMetadata(
        [
            'idDocType' => 'PASSPORT', 
            'country' => 'USA',
            'firstName' => '',
            'middleName' => '',
            'lastName' => '',
            'issuedDate' => '2015-01-02',
            'number' => '40111234567',
            'dob' => '2000-02-01',
            'placeOfBirth' => 'London'
    ],
    $content, // A binary photo of a document
);

获取申请人数据

在验证过程中,我们还会从申请人的身份证明文件中提取数据。要获取申请人的完整结构化视图,您应执行以下请求。

$sumSub->getApplicantById('applicantId');

或通过您的用户ID

$sumSub->getApplicantByExternalUserId('yourId');

更改提供的信息(fixedInfo)

如果您想更改我们提供的数据以与文件交叉验证,可以发出一个PATCH请求而不是创建新的申请人,这被强烈不建议。此方法修补申请人的fixedInfo键中的字段。

use Shaggyrec\Sumsubphp\DTO\FixedInfo;

$sumSub->changeProvidedInfo(
    'applicantId',
    new FixedInfo(
        [
            firstName => 'firstName', 
            lastName => '',
            middleName => '',
            firstNameEn => '',
            lastNameEn => '',
            middleNameEn => '',
            legalName => '',
            gender => 'M',
            dob => '',
            placeOfBirth => '',
            country => '',
            nationality => '',
            addresses => [],
        ],
    ),
);

有关此内容的官方文档。

获取申请人状态

如果您使用WebSDK或MobileSDK,则建议您使用此方法,因为SDK将在其屏幕中显示拒绝原因和评论。但如果您仍然需要获取拒绝评论,可以使用以下方法。

$sumSub->getApplicantStatus('applicantId'); 

获取申请人文档状态

如果您需要有关文档的信息,建议您使用此方法。

$sumSub->getRequiredIdDocsStatus('applicantId');

请求申请人检查

在您或您的用户认为我们的系统出错,或者您通过API发送文件并希望我们进行检查的情况下,您可以编程地要求我们重新检查申请人。要这样做,您应通过执行以下请求明确将申请人移动到待处理状态。

$sumSub->requestCheck(
    'applicantId',
    'reason', // optional
);

获取文档图像

如果您对收到最终验证中作为部分的图像感兴趣,应使用此方法。

$sumSub->getDocumentImage(
    'inspectionId', // Inspection ID (it's a part of an applicant
    'imageId'
);

关于imageId https://developers.sumsub.com/api-reference/#getting-applicant-status-api

将申请人添加到黑名单

如果出于某种原因需要将申请人添加到黑名单,可以使用此端点。必须添加将申请人添加到黑名单的原因。

$sumSub->addToBlacklist('applicantId', 'note')

重置单个验证步骤

在某些情况下,需要用户通过已经通过的验证步骤 - 以下方法将允许使步骤无效,以便SDK再次运行并收集新数据。

$sumSub->resetSingleVerificationStep('applicantId', 'step');

可重置的步骤

PHONE_VERIFICATION
EMAIL_VERIFICATION
QUESTIONNAIRE
APPLICANT_DATA
IDENTITY
PROOF_OF_RESIDENCE
SELFIE

重置申请人

在极少数情况下,需要将申请人的状态更改为init。例如,如果用户联系支持请求重新从零开始使用新文件进行验证。

$sumSub->resetApplicant('applicantId'); 

设置申请人的风险等级

此方法允许您根据自己的标准为申请人设置风险等级。

$sumSub->setRiskLevel(
    'applicantId',
    'riskLevel', // unknown|low|medium|high
    '$comment', // Any string
);

将图像标记为非活动状态(已删除)

该方法允许您将上传的图像标记为已删除,因此在初始化SDK屏幕时会要求提供新的图像。这可以在您希望用户重新上传之前通过SDK批准的文档的情况下使用。

$sumSub->markImageDeleted('inspectionId', 'imageId');

关于imageId https://developers.sumsub.com/api-reference/#getting-applicant-status-api

添加自定义申请人标签

使用此方法为申请人档案分配自定义标签。在仪表板的全局设置部分创建新标签

$sumSub->addTags('applicantId', ['tag1', 'tagg2]);

处理webhooks

use Shaggyrec\SumSubClient\WebhookHandler;

...
// to verify sender
WebhookHandler::verifySender('x-payload-digest header', $webhookBody, 'secret key')

// to get WebhookResponse object
$webhookResponse = WebhookHandler::handle($webhookBody);

或者您可以为WebhookHandler::handleWithVerification函数提供Psr\Http\Message\RequestInterface

use Shaggyrec\SumSubClient\WebhookHandler;

... 

/** @var Psr\Http\Message\RequestInterface $webhookBody */
$webhookBody;
$webhookResponse = WebhookHandler::handleWithVerification($webhookBody, 'SECRET KEY');

要本地运行集成测试,您必须设置您的密钥和API令牌

tests/integration/phpunit.xml.dist

运行测试

./tests/run.sh