webgriffe / lib-unicredit-imprese
Requires
- psr/log: ^1.0
Requires (Dev)
- phpspec/phpspec: ^2.4
- squizlabs/php_codesniffer: ^2.5
README
此库提供与Unicredit PagOnline Imprese支付网关的Web服务集成。它是在遵循Unicredit于2017年7月2日提供的v.07版技术文档的情况下开发的。
安装
为了使用此库,您必须通过composer导入它
composer require webgriffe/lib-unicredit-imprese
用法
支付初始化
首先,获取Webgriffe\LibUnicreditImprese\Client类的实例。然后,在开始实际支付之前,调用init()方法设置一些基本值,例如是否以测试模式或实时模式运行库,由Unicredit提供的ksig密钥,终端ID(由Unicredit提供)以及WSDL URL(在实时环境和测试环境之间有所变化)。此调用将为实际工作准备客户端。
执行init()调用后,您可以调用paymentInit()方法来初始化实际的支付请求。此方法接受多个参数,包括交易类型(仅授权或授权并捕获)、支付金额、支付页面语言代码、支付货币等。notifyUrl参数是Unicredit在支付成功时将客户重定向到的URL。然而,如果发生严重错误,客户将被重定向到错误URL。
paymentInit()方法负责以正确的方式格式化所有参数,使用秘密ksig值对其进行签名,并将它们发送到Unicredit。之后接收并解析返回的响应,此操作的结果是Webgriffe\LibUnicreditImprese\PaymentInit\Response对象。此对象包含paymentInit()操作的结果;如果发生错误,可以使用此对象的getError()和getErrorDesc()方法检查发生了什么错误。如果没有错误,Unicredit将返回支付ID和重定向URL,这些可以通过Response对象的getPaymentId()和getRedirectUrl()方法访问。
如果paymentInit()操作成功,则响应中包含的支付ID应保存,并且用户应重定向到Unicredit提供的URL。这将带用户到一个页面,在那里他们将需要提供完成交易所需的实际支付信息(如信用卡号)。
在此阶段之后,如果发生错误,则用户将被重定向到错误URL。否则,他们将重定向到notify URL。在后一种情况下,即使客户达到notify URL,也需要手动验证支付结果。
支付验证
要验证支付状态,可以使用paymentVerify()方法。此方法需要一个shop-id(通常是一个手动生成的交易标识符,通常是订单ID)以及Unicredit在paymentInit()调用中提供的支付ID。
使用这些值,paymentVerify()方法可以检查相应支付的状态,将其作为Webgriffe\LibUnicreditImprese\PaymentVerify\Response对象返回。再次,可以使用getError()和getErrorDesc()方法检查错误,但在这里可以使用getRc()、getTranId()、getAuthCode()、getEnrStatus()和getAuthStatus()方法从验证结果中检索信息。
与其他支付网关不同,UniCredit不会执行服务器到服务器的调用以通知支付批准。相反,检查每笔支付的状态是商家的责任。这可以通过使用上述的paymentVerify()方法轻松完成。
贡献
请Fork此仓库,进行您的更改并提交pull request。在提交pull request之前,请运行测试和编码规范检查。您可以使用以下命令完成:
composer install
vendor/bin/phpspec run
vendor/bin/phpcs
许可协议
此库受MIT许可协议的约束。完整的许可协议请参阅LICENSE文件。
致谢
由Webgriffe®开发。