Добавлена обработка параметра authorization_details.three_d_secure.applied в объекте платежа

This commit is contained in:
Евгений Ю. Лозный
2021-12-07 17:02:36 +03:00
parent cc9cddb807
commit e2f9eca6e1
307 changed files with 1136 additions and 363 deletions
+51 -7
View File
@@ -35,6 +35,7 @@ use YooKassa\Helpers\TypeCast;
*
* @property $rrn Retrieval Reference Number — уникальный идентификатор транзакции в системе эмитента
* @property string $authCode Код авторизации банковской карты
* @property ThreeDSecure $threeDSecure Данные о прохождении пользователем аутентификации по 3‑D Secure
*/
class AuthorizationDetails extends AbstractObject implements AuthorizationDetailsInterface
{
@@ -49,16 +50,24 @@ class AuthorizationDetails extends AbstractObject implements AuthorizationDetail
private $_authCode = '';
/**
* @param string|null $rrn Уникальный идентификатор транзакции
* @param string|null $authCode Код авторизации банковской карты
* @var ThreeDSecure Данные о прохождении пользователем аутентификации по 3‑D Secure
*/
public function __construct($rrn = null, $authCode = null)
private $_threeDSecure;
public function fromArray($sourceArray)
{
if ($rrn !== null) {
$this->setRrn($rrn);
if (isset($sourceArray['rrn'])) {
$this->setRrn($sourceArray['rrn']);
}
if ($authCode !== null) {
$this->setAuthCode($authCode);
if (isset($sourceArray['auth_code'])) {
$this->setAuthCode($sourceArray['auth_code']);
}
if (isset($sourceArray['three_d_secure'])) {
$this->setThreeDSecure($sourceArray['three_d_secure']);
}
}
@@ -82,9 +91,22 @@ class AuthorizationDetails extends AbstractObject implements AuthorizationDetail
return $this->_authCode;
}
/**
* Возвращает данные о прохождении пользователем аутентификации по 3‑D Secure
*
* @return ThreeDSecure|null Объект с данными о прохождении пользователем аутентификации по 3‑D Secure
*/
public function getThreeDSecure()
{
return $this->_threeDSecure;
}
/**
* Устанавливает уникальный идентификатор транзакции
*
* @param $value
*
* @throws InvalidPropertyValueTypeException
*/
public function setRrn($value)
{
@@ -100,7 +122,10 @@ class AuthorizationDetails extends AbstractObject implements AuthorizationDetail
/**
* Устанавливает код авторизации банковской карты
*
* @param $value
*
* @throws InvalidPropertyValueTypeException
*/
public function setAuthCode($value)
{
@@ -113,4 +138,23 @@ class AuthorizationDetails extends AbstractObject implements AuthorizationDetail
'authorization_details.auth_code', $value);
}
}
/**
* Устанавливает данные о прохождении пользователем аутентификации по 3‑D Secure
*
* @param ThreeDSecure|array $value Данные о прохождении аутентификации по 3‑D Secure
*
* @throws InvalidPropertyValueTypeException
*/
public function setThreeDSecure($value)
{
if (is_array($value)) {
$this->_threeDSecure = new ThreeDSecure($value);
} elseif ($value instanceof ThreeDSecure) {
$this->_threeDSecure = $value;
} else {
throw new InvalidPropertyValueTypeException('Invalid three_d_secure value type', 0,
'authorization_details.three_d_secure', $value);
}
}
}
@@ -33,6 +33,7 @@ namespace YooKassa\Model;
*
* @property-read string $rrn Retrieval Reference Number — уникальный идентификатор транзакции в системе эмитента
* @property-read string $authCode Код авторизации банковской карты
* @property-read ThreeDSecure $threeDSecure Данные о прохождении пользователем аутентификации по 3‑D Secure
*/
interface AuthorizationDetailsInterface
{
@@ -48,4 +49,9 @@ interface AuthorizationDetailsInterface
*/
function getAuthCode();
/**
* Возвращает данные о прохождении пользователем аутентификации по 3‑D Secure
* @return ThreeDSecure|null Объект с данными о прохождении пользователем аутентификации по 3‑D Secure
*/
function getThreeDSecure();
}
+60
View File
@@ -0,0 +1,60 @@
<?php
namespace YooKassa\Model;
use YooKassa\Common\AbstractObject;
use YooKassa\Common\Exceptions\EmptyPropertyValueException;
use YooKassa\Common\Exceptions\InvalidPropertyValueTypeException;
use YooKassa\Helpers\TypeCast;
/**
* ThreeDSecure - Данные о прохождении пользователем аутентификации по 3‑D Secure для подтверждения платежа.
*
* @property bool $applied Отображение пользователю формы для прохождения аутентификации по 3‑D Secure.
*/
class ThreeDSecure extends AbstractObject
{
/**
* @var bool|null Отображение пользователю формы для прохождения аутентификации по 3‑D Secure.
*/
private $_applied;
/**
* Возвращает признак отображения пользователю формы для прохождения аутентификации по 3‑D Secure
*
* @return bool|null Признак отображения пользователю формы для прохождения аутентификации по 3‑D Secure
*/
public function getApplied()
{
return $this->_applied;
}
/**
* Устанавливает признак отображения пользователю формы для прохождения аутентификации по 3‑D Secure
*
* @param bool $value Данные о прохождении аутентификации по 3‑D Secure
*
* @throws InvalidPropertyValueTypeException
*/
public function setApplied($value)
{
if ($value === null || $value === '') {
throw new EmptyPropertyValueException(
'Empty value for "applied" parameter in ThreeDSecure',
0,
'authorization_details.three_d_secure.applied'
);
}
if (!TypeCast::canCastToBoolean($value)) {
throw new InvalidPropertyValueTypeException(
'Invalid applied value type',
0,
'authorization_details.three_d_secure.applied',
$value
);
}
$this->_applied = (bool)$value;
}
}