berarma / cakephp-redsys

CakePHP 的 Redsys 插件

安装: 134

依赖者: 0

建议者: 0

安全性: 0

星标: 1

关注者: 4

分叉: 1

开放问题: 1

类型:cakephp-plugin

0.2.2 2018-12-05 12:20 UTC

This package is auto-updated.

Last update: 2024-09-11 08:32:14 UTC


README

Build Status codecov

CakePHP 插件,实现 Redsys TPV 服务 API。

要求

  • CakePHP 3.4+

安装

您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。

composer require berarma/cakephp-redsys

使用

加载组件并进行配置

$this->loadComponent('Berarma/Redsys.Redsys', [
    // Use 'https://sis.redsys.es/sis/realizarPago' for the real environment
    'url' => 'https://sis-t.redsys.es:25443/sis/realizarPago', // Testing
    'secretKey' => 'QWERTYASDF0123456789',
    'defaults' => [
        'DS_MERCHANT_MERCHANTCODE' => '000000001',
        'DS_MERCHANT_CURRENCY' => '978',
        'DS_MERCHANT_TRANSACTIONTYPE' => '0',
        'DS_MERCHANT_TERMINAL' => '001',
        'DS_MERCHANT_MERCHANTURL' => 'http://example.com/notification',
        'DS_MERCHANT_URLOK' => 'http://example.com/ok',
        'DS_MERCHANT_URLKO' => 'http://example.com/ko',
    ],
]);

这是一个基本的配置示例。默认数组将与请求中传递的任何参数合并。请阅读 Redsys 文档,了解可以使用的所有可选参数。

加载辅助器

$this->loadHelper('Berarma/Redsys.Redsys');

在控制器中初始化交易

$this->Redsys->request([
    'DS_MERCHANT_ORDER' => time(),
    'DS_MERCHANT_AMOUNT' => '100',
]);

在视图中渲染发送用户到 TPV 的表单

<?php echo $this->Redsys->renderForm(['id' => 'redsys-form']); ?>
<?php echo $this->Html->scriptBlock('document.getElementById("redsys-form").submit();'); ?>

在控制器中获取响应

$response = $this->Redsys->response();

然后可以通过以下方式访问响应参数

$response->get('DS_ORDER');

参数的大小写敏感性

规范指出,参数名称应使用大写或 CamelCase 和下划线字符的混合风格。由于混合 CamelCase/下划线风格至少是令人困惑的,而且有 2 种不同的命名风格会增加困惑,因此我决定在所有地方使用大写风格。这意味着所有馈送到此插件中的参数名称都转换为大写,无论它们原本是什么。

待办事项

此插件是一个正在进行中的工作。您应该期待破坏兼容性的更改。

许可证

此插件根据 GPL v2 许可证授权。此插件的大多数常见用途不会构成派生作品,因此您可以在不依赖于您为代码选择的许可证的情况下使用它并将其包含在您的应用程序中,只要插件本身仍然与其原始许可证一起分发。但是,如果您从另一个提供修改或改进功能的插件中使用此插件,则可能构成派生作品,因此您可能需要为您的插件使用相同的许可证。