avaibooksports / redsys-messages
Redsys/Sermepa/Servired网关消息列表
0.2.1
2021-01-08 13:40 UTC
Requires
- php: >=5.6
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- symfony/phpunit-bridge: ^5.1
Suggests
- avaibooksports/omnipay-redsys: An Omnipay driver for Redsys
- league/omnipay: A payment processing library compatible with multiple payment gateways
- vimeo/psalm: If you are going to contribute to this package
README
安装
composer require avaibooksports/redsys-messages
用法
要使用内置翻译,只需加载标准目录
use AvaiBookSports\Component\RedsysMessages; $redsysMessages = new RedsysMessages\Factory(new RedsysMessages\Loader\CatalogLoader()); // Returns "Expired card" $redsysMessages->createCatalogByLanguage('en')->getDsResponseMessage('0101'); // You can load catalogs by ISO 639-1 and ISO 639-2 $redsysMessages->createCatalogByLanguage('eng')->getDsResponseMessage('0101'); // There is a different library for error messages. Those error codes can be provided by Redsys in two different formats: $redsysMessages->createCatalogByLanguage('en')->getErrorMessage('9002')); $redsysMessages->createCatalogByLanguage('en')->getErrorMessage('SIS0002')); // Alias of '9002'
创建和加载自定义目录
要加载自定义目录,您必须实现一个或多个实现 AvaiBookSports\Component\RedsysMessages\CatalogInterface
的类。
之后,您只需使用 ArrayLoader
调用工厂即可
// src/Redsys/Messages/Italian.php namespace App\Redsys\Messages; use AvaiBookSports\Component\RedsysMessages\CatalogInterface; class English implements CatalogInterface { /** * @var string[] */ private $dsResponseMessages = [ '0101' => 'Carta scaduta', // ... ]; /** * {@inheritdoc} */ public static function getIso639Alpha2() { return 'it'; } /** * {@inheritdoc} */ public static function getIso639Alpha3() { return 'ita'; } /** * {@inheritdoc} */ public function getDsResponseMessage($code) { if (array_key_exists($code, $this->dsResponseMessages)) { return $this->dsResponseMessages[$code]; } return null; } }
use AvaiBookSports\Component\RedsysMessages; $redsysMessages = new RedsysMessages\Factory( new RedsysMessages\Loader\ArrayLoader([ \App\Redsys\Messages\Italian::class, // ... ]) ); // "Carta scaduta" $redsysMessages->createCatalogByLanguage('it')->getDsResponseMessage('0101');
加载多个目录
可能您想要加载此库中包含的所有目录,以及一些不支持的语言的自定义目录。
您可以使用 ChainLoader
来实现这一目的
use AvaiBookSports\Component\RedsysMessages; $redsysMessages = new RedsysMessages\Factory( new RedsysMessages\ChainLoader([ new RedsysMessages\Loader\CatalogLoader(), new RedsysMessages\Loader\ArrayLoader([ \App\Redsys\Messages\Italian::class, // ... ]) new App\Redsys\Loader\MyCustomLoader(), // Maybe you want to implement your own loader? ]) );
AvaiBookSports\Component\RedsysMessages\CatalogInterface\Factory
允许您作为参数使用任何实现 AvaiBookSports\Component\RedsysMessages\CatalogInterface\CatalogLoaderInterface
的类,而 ChainLoader
允许您一次性加载多个目录,因此没有任何阻止您创建自己的自定义目录加载器。
贡献
欢迎贡献,尤其是目录翻译。如果您创建的目录支持您的母语,请考虑发起一个拉取请求。
- 只需关注测试
vendor/bin/simple-phpunit
,并除了array
和object
以外不使用类型提示以支持 PHP 5。使用 phpDoc。 - 使用
vendor/bin/php-cs-fixer fix
修复您的代码格式 - 查看
psalm
以检查您可以改进的内容
遵循这些步骤将确保您在拉取请求中有一个绿色的检查标志!