tomaj/bank-mails-parser

斯洛伐克银行邮件解析

2.8.0 2024-05-13 12:12 UTC

This package is auto-updated.

Last update: 2024-09-13 16:49:53 UTC


README

处理银行确认邮件的库。目前仅支持 Tatrabanka 的两种邮件格式。

如果我们添加更多其他银行的邮件,将需要进行一些重构(例如 MailContent 与 TatraBanka 强烈关联)

Build Status Test Coverage Code Climate

Latest Stable Version Latest Unstable Version License

安装

通过 composer 安装包

$ composer require tomaj/bank-mails-parser

用法

PHP 中的基本用法

use Tomaj\BankMailsParser\Parser\TatraBanka\TatraBankaMailParser;

$tatraBankaMailParser = new TatraBankaMailParser();
$mailContent = $tatraBankaMailParser->parse('mail content');

echo $mailContent->getKs() . "\n";
echo $mailContent->getSs() . "\n";
echo $mailContent->getVs() . "\n";
echo $mailContent->getReceiverMessage() . "\n";
echo $mailContent->getDescription() . "\n";
echo $mailContent->getCurrency() . "\n";
echo $mailContent->getTransactionDate() . "\n";
echo $mailContent->getAccountNumber() . "\n";
echo $mailContent->getAmount() . "\n";
echo $mailContent->getAccountNumber() . "\n";
echo $mailContent->getTxn() . "\n";

使用 TatraBankaSimpleMailParser 可以解析 comforpay 邮件。还有其他获取器,如 CID 用于重复付款。

echo $mailContent->getCid() . "\n";
echo $mailContent->getSign() . "\n";
echo $mailContent->getRes() . "\n";

从 2.* 升级到 3.*

要使用版本 3,您至少需要 php 7.1。引入了多个破坏性更改

  1. Tomaj\BankMailsParser\Parser\ParserInterface 将不再返回 false,而是仅返回 ?MailContent
  2. 为整个项目引入了严格类型 declare(strict_types=1);
  3. 将所有与 Tatrabanka 相关的代码移动到 TatraBanka 文件夹下,并使用适当的命名空间
  4. 将严格类型添加到所有方法和参数中
  5. 将 phpunit 升级到版本 9

从 1.* 升级到 2.*

版本 2.0 中有一个破坏性更改 - 解析器始终返回 MailContent,当电子邮件被解析时。在版本 1.0 中 - 解析器仅在银行响应正常时返回 MailContent。在版本 2 中,您还可以读取失败电子邮件。

与 imap 邮件下载器的用法

如何使用 imap 邮件下载器 的示例

use Tomaj\ImapMailDownloader\Downloader;
use Tomaj\ImapMailDownloader\MailCriteria;
use Tomaj\ImapMailDownloader\Email;
use Tomaj\BankMailsParser\Parser\TatraBanka\TatraBankaMailParser;

$downloader = new Downloader('*imap host*', *port*, '*username*', '*password*');

$criteria = new MailCriteria();
$criteria->setFrom('some@email.com');
$downloader->fetch($criteria, function(Email $email) {
    $tatraBankaMailParser = new TatraBankaMailParser();
	$mailContent = $tatraBankaMailParser->parse($email->getBody());
	
	// process $mailContent data...
	
	return true;
});

注意:您必须包含包 imap-email-downloadercomposer require tomaj/imap-email-downloader

待办事项

添加其他银行确认邮件的解析器。请随时分叉并创建其他银行解析器的拉取请求。