nextnetmedia/tipalti

Tipalti iFrame 和 SOAP API 的简单 PHP 实现

1.0.5 2023-02-05 15:22 UTC

This package is auto-updated.

Last update: 2024-09-05 18:59:26 UTC


README

PHP 中对 Tipalti API SOAP API v11 和 Tipalti iFrame URL 的改编。遵循 MIT 许可证。

iFrame 辅助示例

要生成一个显示给收款人的 iFrame URL(例如,收集他们的支付或税务信息),只需提供您的 API 密钥、付款人姓名(由 Tipalti 提供)、收款人 ID(也称为 IDAP)以及 Tipalti 文档中指定的任何可选参数

 $iframe = new \Nextnetmedia\Tipalti\iFrame("your-api-key-here", "YourCompanyName");
 echo $iframe->getUrl("PAYEE_1234", ["payeeType"=>"individual"]);

Tipalti API 类

您可以直接访问 Tipalti API;所有端点都已通过 wsdl2phpgenerator 从 Tipalti Payee 和 Payer v11 WSDLs 镜像,然后手动清理和组织到正确的命名空间中,并包含一个自动客户端,该客户端处理每个命令的 EAT 和加密密钥。

客户端使用魔法方法调用适当的端点,并处理付款人姓名、时间戳和密钥,因此您不需要自己添加这些值。

试用

$payerClient = new \Nextnetmedia\Tipalti\PayerClient("your-api-key-here", "YourCompanyName", false);
var_dump($payerClient->GetBalances());

或对于收款人,

$payeeClient = new \Nextnetmedia\Tipalti\PayeeClient("your-api-key-here", "YourCompanyName", false);
var_dump($payeeClient->GetExtendedPayeeDetails("TEST_IDAP"));

添加新收款人的更复杂示例

$t = new \Nextnetmedia\Tipalti\PayeeClient("your-api-key-here","YourCompanyName", false);
$u = new \Nextnetmedia\Tipalti\Resource\PayeeDetailsItem()
$u->setSendSupplierPortalInvite(true);
$u->setFirstName('Example');
$u->setLastName('User');
$u->setEmail('example@example.com');
$u->setIdap('EXAMPLE_187');
$u->setStreet1("123 Main Street");
$t->UpdateOrCreatePayeeInfo('EXAMPLE_187', true, false, $u);

开发说明

本项目正在使用 Tipalti API v11。由于使用了 wsdl2phpgenerator 生成的 SOAP WSDL 以及手工清理,尝试更改使用的 API 版本可能不会工作。

已经仔细检查,以确保此代码将在 PHP 5.4+ 上正常工作,并具有最少的依赖项。已使用一些不寻常的代码模式,如自定义类注解,以添加对 EAT 参数的支持,因为这些参数在 Tipalti WSDL 中未指定,必须硬编码。

PHPDoc @method 注解定义的魔法方法类,在 PayeeClient 和 PayerClient 类中定义,可以通过静态::generateMethodAnnotations() 方法重新生成(如果可用的命令已更改,以帮助您的 IDE 检测可用的命令)。

已知问题

对于包含多层嵌套项的调用,Tipalti 的 "EAT" 参数计算极其困难,特别是当有多个 EAT 值选项时(如 IDAP 或 Street1")。这目前导致在验证过程中抛出错误;一种解决方法是强制在子项上再次设置 Idap,即使它已在父项上设置。