nextnetmedia / tipalti
Tipalti iFrame 和 SOAP API 的简单 PHP 实现
Requires
- php: >=5.6
- ext-hash: *
- ext-json: *
- ext-soap: *
- doctrine/annotations: ^1.4
- haydenpierce/class-finder: ^0.4.4
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,即使它已在父项上设置。