paysera / notification-php-client
Notification API PHP客户端
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
。