leandroandreaci / iso8583
ISO8583模块
v0.3
2019-05-23 14:08 UTC
Requires
- php: >=7.1.0
Requires (Dev)
- phpunit/phpunit: ^8.2@dev
This package is auto-updated.
Last update: 2024-09-22 01:13:29 UTC
README
版本:0.3
ISO8583
本包可生成和解析ISO8583标准消息。
安装
composer require leandroandreaci/iso8583
使用
- 解析器的新实例需要一个包含ISO消息定义的类。
<?php namespace Andromeda\ISO8583; use Andromeda\ISO8583\Contracts\IsoMessageContract; use Andromeda\ISO8583\MessageDefinition; class ExampleMessage extends MessageDefinition implements IsoMessageContract { public function getIso(): array { return [ 1 => ['b', 32, self::FIXED_LENGTH], 2 => ['ans', 99, self::VARIABLE_LENGTH], 3 => ['n', 6, self::FIXED_LENGTH], 4 => ['n', 12, self::FIXED_LENGTH], 5 => ['n', 12, self::FIXED_LENGTH], 6 => ['n', 12, self::FIXED_LENGTH], 7 => ['an', 10, self::FIXED_LENGTH], ]; } } /* Array definition: 1 => ['b', 32, self::FIXED_LENGTH], bit => ['type','size','is variable or fixed'] */
- 示例:使用包中的ExampleMessage读取ISO8583。
$messageDefinition = new \Andromeda\ISO8583\ExampleMessage(); $parser = new \Andromeda\ISO8583\Parser($messageDefinition); //Example 01 $parser->addMessage('0800...'); $parser->validateISO(); //return false //Example 02 $parser->addMessage('0800A238000000C0000804000000000000000000010401000443495194000443040176007008043177567000140003001000'); $parser->validateISO(); //return true $parser->getBit('07'); //return 0401000443
- 示例:使用包中的ExampleMessage创建ISO8583。
$message = new \Andromeda\ISO8583\ExampleMessage(); $isoMaker = new \Andromeda\ISO8583\Parser($message); $isoMaker->addMTI('0800'); $isoMaker->addData(3, '123456'); $isoMaker->addData(4, '000000001000'); $isoMaker->addData(7, '1234567890'); $isoMaker->getISO(); // return 080032000000000000001234560000000010001234567890