tecnospeedsa / plugnotas
用于在PHP中使用Plugnotas的包
Requires
- php: ^7.0
- ferfabricio/hydrator: ^2.0
- guzzlehttp/guzzle: ^7.3
- maciejczyzewski/bottomline: ^0.2.0
- respect/validation: ^1.1
Requires (Dev)
- phpunit/phpunit: ~6.5.13
README
Plugnotas
此包旨在简化与Plugnotas API的集成。有关功能和使用信息,请访问我们的网站或官方文档。
安装
添加包
我们建议使用Composer安装此包。Composer是一个PHP依赖关系管理器,允许您以简化的方式声明和安装项目依赖。
可以使用Composer的命令行添加包
php composer.phar require tecnospeedsa/plugnotas:~1.4
或手动在composer.json
文件中添加
{
"require": {
"tecnospeedsa/plugnotas": "~1.4"
}
}
包的加载由Composer的自动加载器完成,如果您未将其添加到项目中,则需要包含以下require
require 'vendor/autoload.php;'
有关安装、使用和项目依赖的最佳实践的更多信息,请访问getcomposer.org网站。
使用包
发送NFSe
要发送NFSe,需要创建一个相关的对象(TecnoSpeed\Plugnotas\Nfse
),它由多个其他对象组成,这些对象在其命名空间内分组。
创建对象后,应调用该对象的send
方法,此过程可能非常复杂和冗长,但不用担心,下面提供了更简单的方法。
有关如何手动创建对象以发送NFSe的示例,请参阅此处。
使用构建器创建NFSe
TecnoSpeed\Plugnotas\Builders\NfseBuilder
类是一个辅助类,允许您轻松创建一个TecnoSpeed\Plugnotas\Nfse
对象。
使用此辅助类和以下方法:withTomador
、withPrestador
、withServico
、withRps
、withImpressao
和withCidadePrestacao
,您可以根据需要组合Nfse对象,一个示例显示在nfse.simple.php文件中。
注册供应商、购买者和服务
供应商、购买者和服务的注册简化了NFSe的发送,一旦注册,就可以使用更少的参数发送发票,因为已注册的信息将被查询。
以下链接包含类型注册的示例
查询NFSe
要查询NFSe,需要创建一个TecnoSpeed\Plugnotas\Configuration
类型的对象,然后使用setConfiguration
方法将其设置为新的TecnoSpeed\Plugnotas\Nfse
对象。
完成此设置后,有两种查询方式:通过您发送票据时生成的ID或协议号进行查询,或者通过用于创建NFSe的ID Integração和供应商的CNPJ进行查询。对应的方法是:findByCnpjAndIdIntegracao
和findByIdOrProtocol
。
示例中使用的findByCnpjAndIdIntegracao
方法可以在[这里](https://github.com/tecnospeed/plugnotas-php/blob/master/examples/nfse.consulta.cnpjId.php)找到,以及使用findByIdOrProtocol
方法的示例[在这里](https://github.com/tecnospeed/plugnotas-php/blob/master/examples/nfse.consulta.cnpjId.php)。
下载NFSe的PDF文件
与查询类似,下载Nfse的PDF文件也需要一个类型为TecnoSpeed\Plugnotas\Configuration
的对象,该对象需要通过setConfiguration
方法设置在一个新的TecnoSpeed\Plugnotas\Nfse
对象中。一个特殊之处在于,需要使用setNfseDownloadDirectory
方法在配置对象中指定文件写入的文件夹。
可以使用download
方法通过返回的票据ID下载,也可以使用在发送NFSe时使用的供应商的CNPJ和ID Integração通过downloadPdfByCnpjAndIdIntegracao
方法下载。
文件将保存在配置的文件夹中(该文件夹需要具有写权限),文件名将遵循以下模式
- 当使用
download
方法时:<文件夹信息>/<id>.pdf
- 当使用
downloadPdfByCnpjAndIdIntegracao
方法时:<文件夹信息>/<cnpj>-<id integração>.pdf
使用ID下载的示例[在这里](https://github.com/tecnospeed/plugnotas-php/blob/master/examples/nfse.download.php),以及使用CNPJ和ID Integração下载的示例[在这里](https://github.com/tecnospeed/plugnotas-php/blob/master/examples/nfse.download.cnpjId.php)。
取消
可以通过提供Nfse的ID或供应商的CNPJ和ID Integração,以与搜索和下载相同的方式取消Nfse。
与查询和下载Nfse的PDF文件一样,需要使用类型为TecnoSpeed\Plugnotas\Configuration
的对象,该对象需要通过setConfiguration
方法设置在一个新的TecnoSpeed\Plugnotas\Nfse
对象中。
执行此操作的相应方法是:cancel
和cancelByCnpjAndIdIntegracao
。
创建取消操作时将返回一个协议,可以使用该协议通过cancelStatus
路由来查询取消状态。
示例
您可以在/examples
文件夹中查看一些示例。
所有对象分解为数组的详细信息可以在文件nfse.array.php中查看.
官方文档
变更日志
通过[此链接](https://github.com/tecnospeed/plugnotas-php/blob/master/CHANGELOG.md)访问应用的变更日志。