muhittingulap / qnbfinansbank
QNB Finansbank E-Fatura ve E-Arşiv PHP Api
Requires
- php: ^7.0
This package is auto-updated.
Last update: 2024-09-16 09:04:25 UTC
README
E-Fatura / E-Arşiv
QNB Finansbank
QNB Finansbank E-Fatura ve E-Arşiv PHP Api
本库是用PHP编写的,专门为QNB Finansbank的web服务,可进行E-Arşiv和E-Fatura的通告操作。
文档(QNB FinansBank)
要访问文档文件,请点击此处。
安装
$ composer require muhittingulap/qnbfinansbank
在项目中使用
<?php include('vendor/autoload.php');
支持的方法
- E-Fatura
- setEFatura() : 可执行E-Fatura通告操作。
- getFaturaNo() : 根据门户网站上最后发送的发票号码生成下一个发票号码。
- getEfaturaKullanicisi() : 获取相关信息人员是否为E-Fatura纳税人。
- gidenBelgeDurumSorgula() : 可查询您发送的发票的状态。
- gidenBelgeleriListele() : 可列出您发送的发票。
- gelenBelgeleriListele() : 可列出您收到的发票。
- E-Arşiv
- setEArsiv() : 可执行E-Arşiv通告操作。
- getFaturaNo() : 根据门户网站上最后发送的发票号码生成下一个发票号码。
- getFaturaSorgula() : 查看发票详情的查询服务。返回发票的PDF/HTML信息和详情。
- callFaturaIptalEt() : 可执行发票取消服务。
要通告的数据准备(UBL)
- 准备起始数据
对于E-Fatura和E-Arşiv,需要准备公共数据。以下代码显示了如何创建起始数据,然后进行添加,以获取最终数据输出。这些数据可以发送到E-Arşiv或E-Fatura。
<?php $data = new \EFINANS\Component\data(); /* otomaik benzersiz UUID oluşturur. */ $uuid=$data->getUuid(); $veri = array( "ID" => "", "ProfileID" => "", "UUID" => $uuid, "IssueDate" => "", "IssueTime" => "", ); /* hazırlanan başlangıç datasını set ediyoruz */ $data->setStartData($veri);
参数
- 添加备注信息
我们为每个备注进行设置。请参阅备注的文档。
<?php $veri = array( "ID" => 1, /* not benzersiz id si */ "Value" => "", /* not tu buraya yazınız */ ); $data->setAddNote($veri);
示例
// e faturada zorunluluk yoktur. e arşiv için zorunlu olduğundan aşağıdaki notu eklemeniz yeterlidir. <?php $veri = array( "ID" => 1, "Value" => "Gönderim Şekli: ELEKTRONIK", ); $data->setAddNote($veri);
参数
- 添加卖方和买方信息
同样,您应该在'Customer'中写入买方信息,并更改下面的'Supplier'位置进行设置。
<?php $veri = array( "Party" => array( "WebsiteURI" => "", "PartyIdentificationID" => "", "PartyName" => "", "Telephone" => "", "Telefax" => "", "ElectronicMail" => "", "PartyTaxSchemeName" => "", ), "PostalAddress" => array( "StreetName" => "", "BuildingNumber" => "", "CitySubdivisionName" => "", "CityName" => "", "PostalZone" => "", "CountryName" => "Türkiye", ), ); $data->setSupplierCustomerParty('Supplier', $veri);
参数
- 添加卖方和买方人员信息
'Customer'必须设置,因为TC身份证号码是必须的。对于'Supplier'不是必须的,但您可以输入。
<?php $veri = array( "FirstName" => "", "FamilyName" => "", ); $data->setPerson('Customer', $veri);
参数
- 输入支付条件
信息注释形式输入不是必须的。
<?php $veri = array( "Note" => "Ziraat Bankası", "PaymentDueDate" => "2020-07-30", ); $data->setPaymentTerms($veri);
参数
- 输入发票行
此步骤中,您需要为每行重复此操作,或者在一个循环中设置所有发票行。
<?php $veri = array( "ID" => "", "InvoicedQuantity" => "", "LineExtensionAmount" => "", "BaseAmount" => 0, "TaxAmount" => 0, "TaxSubtotal" => array( 0 => array( "TaxableAmount" => 0, "TaxAmount" => 0, "Percent" => 0, "TaxSchemeName" => "KDV", "TaxSchemeTaxTypeCode" => "0015", ), 1 => array( "TaxableAmount" => 0, "TaxAmount" => 0, "Percent" => 0, "TaxSchemeName" => "Özel İletişim Vergisi", "TaxSchemeTaxTypeCode" => "4080", ), ), "ItemName" => "", "PriceAmount" => 0, ); $data->setInvoiceLine($veri);
参数
- 获取最终数据
此步骤中,发票行会自动计算货币总额和税收总额,获取即将发送到E-Arşiv或E-Fatura的数据的最终状态,xml之前的array数据,并将它们存储在一个变量中,然后我们可以进入通告阶段。
<?php $qnb_data = $data->setTotals()->getData();
服务连接操作
为连接到web服务,我们定义TEST或LIVE环境的用户名和密码。这些信息由QNB FinansBank提供。您可以通过发送电子邮件获取信息。
<?php $config = new \EFINANS\Config\config(); $options=$config->setUsername("CANLI_VEYA_TEST_USERNAME") ->setpassword("CANLI_VEYA_TEST_USERNAME") ->setvergiTcKimlikNo("CANLI_VEYA_TEST_VERGI_KIMLIKNO") ->setUrl("CANLI_VEYA_TEST_URL") ->getConfig();
参数
测试URL
- E-Arşiv : https://earsivtest.efinans.com.tr/earsiv/ws/EarsivWebService?wsdl
- E-Fatura : https://erpefaturatest.cs.com.tr:8443/efatura/ws/connectorService?wsdl
E-Fatura 操作
要执行E-Fatura通告操作,我们调用类并开始设置操作。
<?php $efatura = new \EFINANS\Libraries\efatura(); $belgeNo=uniqid(); $return= $efatura->setConfig($options) ->setStart() ->setBelgeNo($belgeNo) ->setData($qnb_data) ->setEFatura(); print $return->belgeOid; /* e faturadan bildirim sonrası dönen key */
请求参数
响应参数
E-Arşiv 操作
要执行E-Arşiv通告操作,我们调用类并开始设置操作。
<?php $earsiv = new \EFINANS\Libraries\earsiv(); $return= $earsiv->setConfig($options) ->setStart() ->setSube("DFLT") ->setKasa("DFLT") ->setData($qnb_data) ->setEArsiv(); print '<pre>'; /* düzgün çıktı görseli için */ print_r($return);
请求参数
响应参数
E-Fatura和E-Arşiv扩展方法
根据需要,您可以使用E-Fatura或E-Arşiv的扩展方法。
- E-Fatura
- getFaturaNo() : 根据门户网站上最后发送的发票号码生成下一个发票号码。
使用 getFaturaNo() 方法返回的值赋给 $ID 变量,并将其发送到起始数据时,不会自动接受我们发送的发票号,而是接受我们发送的发票号。
<?php $efatura = new \EFINANS\Libraries\efatura(); $ID= $efatura->setConfig($options) ->setStart() ->getFaturaNo("BASLANGIC_SERI_NO") ;
参数
- getEfaturaKullanicisi() : 获取相关信息人员是否为E-Fatura纳税人。
为了确定准备的数据是发送给 E-Fatura 还是 E-Arşiv,我们使用 getEfaturaKullanicisi() 方法进行检查。如果返回值为 (true 或 1),则表示是 e-fatura 纳税人,这意味着准备的数据将被发送到 e-fatura。否则,可以将其发送到 E-Arşiv。
<?php $efatura = new \EFINANS\Libraries\efatura(); $return= $efatura->setConfig($options) ->setStart() ->getEfaturaKullanicisi("VERGI_VEYA_TC_KIMLIK_NO") ;
参数
- E-Arşiv
- getFaturaNo():每次运行时,都会自动增加计数器,返回最新生成的 e-档案发票号。
使用 getFaturaNo() 方法返回的值赋给 $ID 变量,并将其发送到起始数据时,不会自动接受我们发送的发票号,而是接受我们发送的发票号。由于是 E-Arşiv,每次运行时都会生成一个新的号码。
<?php $earsiv = new \EFINANS\Libraries\earsiv(); $ID= $earsiv->setConfig($options) ->setStart() ->setUuid($data->getUuid()) ->getFaturaNo("BASLANGIC_SERI_NO");
参数
自动通知处理(正在准备中..)
如果您希望自动检测 E-Fatura 或 E-Arşiv 发送,并通过单个类发送,可以使用以下方法。
支持
如果您发现错误,请使用 GitHub issue tracker 进行报告,或者更好的方法是,分支库并提交拉取请求。
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。