vlsv / sberbank-api
SberBank CallbackNotification 处理器
v1.1.0
2021-03-12 17:50 UTC
Requires
- php: ^7.4||^8
- ext-json: *
- ext-openssl: *
Requires (Dev)
- phpunit/phpunit: ^9.0
README
要求
- PHP 7.4 及以上
- SSL 证书
php-json
扩展ext-openssl
扩展
安装
$ composer require 'vlsv/sberbank-api'
使用
无校验和通知
此类通知仅包含订单信息——潜在地,卖家可能将恶意发送的通知误认为是真实的。
<?php use Vlsv\SberBankApi\CallbackNotification; require __DIR__ . '/vendor/autoload.php'; // Массив значений полученный от платежного шлюза $payload = $_GET; try { $order = new CallbackNotification($payload); } catch (\UnexpectedValueException $e) { exit($e->getMessage()); } if ($order->isDeposited()) { echo 'Проведена полная авторизация суммы заказа ' . $order->getOrderNumber(); } if ($order->isRefunded()) { echo 'По заказу ' . $order->getOrderNumber() . ' была проведена операция возврата '; }
带校验和通知
此类通知除包含订单信息外,还包含认证码。认证码是订单信息的校验和。这个校验和允许验证 callback-通知确实是由支付网关发送的。
实现带校验和的 callback-通知有两种方法
对称私钥
$symmetric_private_key = 'symmetric private key'; if ($order->isSymmetricKeyValidationSuccessful($symmetric_private_key)) { echo 'Подлинность данных подтверждена'; }
非对称公钥
$asymmetric_public_key = 'asymmetric public key'; if ($order->isAsymmetricKeyValidationSuccessful($asymmetric_public_key)) { echo 'Подлинность данных подтверждена'; }