paysera/notification-php-client

此包的最新版本(1.0.1)没有可用的许可证信息。

Notification API PHP客户端

1.0.1 2021-01-05 08:06 UTC

This package is auto-updated.

Last update: 2024-09-05 15:57:49 UTC


README

#NotificationPhpClient

##什么是NotificationPhpClient?

这是一个用于webtopay.com通知API的库。它允许您轻松检查并解析来自webtopay.com关于您账户资金的回调请求。您需要在webtopay.com的“账户设置”页面设置通知以获取通知。

##安装

###手动

  • 使用git clone https://github.com/evp/NotificationPhpClient.git将NotificationPhpClient目录复制到您的项目目录。
  • 将以下代码添加到您打算检查通知回调的PHP文件中
   require_once '/path/to/NotificationPhpClient/src/Evp/Notification/Autoloader.php';
   Evp_Notification_Autoloader::register();

这将确保库的所有类都正确加载。请确保将'path/to'更改为NotificationPhpClient的实际路径。

###Composer

  • "paysera/notification-php-client": "dev-master"依赖项添加到composer.json文件。
  • 在项目目录中执行composer update paysera/notification-php-client

##使用库

$notification = Evp_Notification_Container::create()->getRequestParser()->parseRequest($_POST);

Evp_Notification_Container::create方法用于流畅的接口,您可以通过使用new关键字来创建容器。

Evp_Notification_RequestParser::parseRequest方法返回一个Evp_Notification_Entity_OperationNotification实例,该实例提供了从回调获取数据的接口。如果您更喜欢以数组的形式获取所有传递的参数,可以使用方法Evp_Notification_RequestParser::parseRequestToArray

在创建Evp_Notification_Container时提供可选的数组参数,您可以自定义参数和服务。

每次解析回调并检查签名时,都会从webtopay.com服务器请求公钥。为了缓存公钥,向容器提供参数cache.filePath。例如

$container = new Evp_Notification_Container(array(
    'cache.filePath' => '/tmp/evp.notifications.public-key.php',
));

请注意,此文件必须位于一个安全的地方,其他脚本或第三方无法覆盖它。否则,可能会通过替换公钥而违反安全性。如果没有可用的缓存,文件不可读或使用缓存的密钥签名无效,则会从webtopay.com下载公钥并将其保存到缓存中。

Notification API要求响应代码为200,内容以"OK"开头。库不提供任何提供此类响应的方法。

如果签名检查未通过或发生其他问题,库将抛出异常。您可以通过捕获这些异常来处理它们

try {
    $notification = Evp_Notification_Container::create()->getRequestParser()->parseRequest($_POST);
    // process $notification somehow
    echo 'OK';
} catch (Evp_Notification_Exception $exception) {
    // log $exception somehow
    // do not respond 'OK' if you want that callback would be repeated after some time
    echo 'Error: ' . $exception;
}

##运行测试

在基本目录中运行phpunit