dwolla / dwollaswagger
Requires
- php: >=5.3.3
- ext-curl: *
- ext-json: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ~4.0
- satooshi/php-coveralls: ~0.6.1
- squizlabs/php_codesniffer: ~2.0
README
此存储库包含由swagger-codegen的此分支生成的Dwolla基于PHP的SDK的源代码,允许开发人员通过PHP API与Dwolla的服务器端API进行交互。任何可以通过HTTP请求执行的操作,都可以在服务器端环境中使用此SDK执行。
注意: 使用这些替换添加了对PHP 7.4的临时支持
\$this\->([a-z0-9\_]+) = \$data\["([a-z0-9\_]+)"\]\;
转换为\$this->$1 = \$data\["$2"\] ?? null;
目录
入门
安装
要开始使用此SDK,您首先需要将其下载到您的机器上。我们使用Packagist来分发此包,它允许通过Composer下载。
$ composer require dwolla/dwollaswagger $ composer install
要使用,只需require
您的Composer autoload.php
文件。
require("../path/to/vendor/autoload.php");
初始化
在可以发出任何API请求之前,您必须首先确定您将使用哪种环境,并获取应用程序密钥和密码。要获取应用程序密钥和密码,请访问以下链接之一
- 生产环境: https://dashboard.dwolla.com/applications
- 沙盒环境: https://dashboard-sandbox.dwolla.com/applications
最后,在配置了username
和password
值(分别对应您从上述链接之一获取的应用程序密钥和密码)后,您可以创建一个ApiClient
实例。
DwollaSwagger\Configuration::$username = "API_KEY"; DwollaSwagger\Configuration::$password = "API_SECRET"; # For Sandbox $apiClient = new DwollaSwagger\ApiClient("https://api-sandbox.dwolla.com"); # For Production $apiClient = new DwollaSwagger\ApiClient("https://api.dwolla.com");
令牌
应用程序访问令牌用于代表应用程序对API进行身份验证。应用程序令牌可用于访问属于应用程序本身(webhooks
、events
、webhook-subscriptions
)或拥有应用程序的Dwolla账户(accounts
、customers
、funding-sources
等)的资源。应用程序令牌通过使用client_credentials
OAuth授权类型获得。
$tokensApi = new DwollaSwagger\TokensApi($apiClient); $appToken = $tokensApi->token();
应用程序访问令牌是短暂的:1小时。它们不包含refresh_token
。当它过期时,使用$tokensApi->token()
生成一个新的。
发送请求
Dwolla客户端提供了与Dwolla API交互的高级方法。
高级请求
高级方法通过在SDK本身中嵌入您通常在Dwolla API参考中引用的信息来简化开发,例如端点、请求参数和响应反序列化。DwollaSwagger
包含API
模块,允许用户发出请求,以及models
,这些是库用来反序列化响应的数据访问对象。
每个模型代表可以与Dwolla API一起发出的不同类型的请求和响应。查看完整列表,请参阅models
目录。
以下API模块可用
- 账户
- 受益所有人
- 商业分类
- 客户
- 文件
- 事件
- 资金来源
- 基于知识的身份验证 (KBA)
- 标签
- 标签重新分配
- 账本条目
- 批量支付项
- 按需授权
- 根
- 沙盒
- 令牌
- 转账
- Webhooks
- Webhook 订阅
设置头部信息
您可以根据 API 模型的模式在请求中传递自定义头信息。以下是一个创建带有 Idempotency-Key 头信息的客户的示例。
$customersApi = new DwollaSwagger\CustomersApi($apiClient); $customer = $customersApi->create([ "firstName" => "Jane", "lastName" => "Merchant", "email" => "jmerchant@nomail.net", "type" => "receive-only", "businessName" => "Jane Corp llc", "ipAddress" => "99.99.99.99" ], [ "Idempotency-Key" => "51a62-3403-11e6-ac61-9e71128cae77" ]); $customer; # => "https://api-sandbox.dwolla.com/customers/fc451a7a-ae30-4404-aB95-e3553fcd733f"
响应
成功
# Retrieve an Account by ID $accountsApi = new DwollaSwagger\AccountsApi($apiClient); $account = $accountsApi->id("8a2cdc8d-629d-4a24-98ac-40b735229fe2"); # Retrieve a Customer by ID $customerUrl = 'https://api-sandbox.dwolla.com/customers/07d59716-ef22-4fe6-98e8-f3190233dfb8'; $customersApi = new DwollaSwagger\CustomersApi($apiClient); $customer = $customersApi->getCustomer($customerUrl); # Create a customer funding source $customerUrl = "https://api-sandbox.dwolla.com/customers/AB443D36-3757-44C1-A1B4-29727FB3111C"; $fsApi = new DwollaSwagger\FundingsourcesApi($apiClient); $fundingSource = $fsApi->createCustomerFundingSource([ "routingNumber" => "222222226", "accountNumber" => "123456789", "bankAccountType" => "checking", "name" => "Jane Doe’s Checking" ], $customerUrl); $fundingSource; # => "https://api-sandbox.dwolla.com/funding-sources/375c6781-2a17-476c-84f7-db7d2f6ffb31"
错误
您可以将请求包裹在 try/catch 块中来处理错误。
try{ $new_customer = $customersApi->create([ //request_body ]); } catch (Exception $e) { echo 'Caught exception: ', $e->getResponseBody(), "\n"; }
变更日志
- 1.9.0:添加支持使用
plaidToken
为客户创建银行资金来源。 - 1.8.0:添加交易所和交易所合作伙伴 API 方法。
- 1.7.1:修复按需授权未正确解析 Dwolla 响应的漏洞。
- 1.7.0:在
CustomersAPI
中添加了新的getCustomerCardToken
方法,用于为客户创建卡片资金来源令牌。 - 1.6.0:新添加了
TokenApi
,以支持应用程序访问令牌和客户端令牌请求。 - 1.5.0:更新 API 架构,将
CustomersApi
更新为在列出客户时支持email
参数。 - 1.4.1:修复了在 #43 中用向后兼容的三元运算符替换空合并运算符的漏洞。
- 1.4.0:为 PHP 7.4 添加临时支持修复。 问题 #41。(感谢,@oprypkhantc!)
- 1.3.0:在所有请求中添加自定义头信息支持。(例如,Idempotency-Key 头信息)
- 1.2.0:添加
KbaApi
。有关更多信息,请参阅 GitHub 发布版本。 - 1.1.0:添加
LabelsApi
、LabelreallocationsApi
和LedgerentriesApi
。 - 1.0.20:修复了 ApiClient 中解析 201 响应 Location 头信息的问题。
- 1.0.19:修复了 ApiClient 中的 201 响应问题。
- 1.0.18:修复了 CreateCustomer 模型中的控制器漏洞。
- 1.0.17:更新
CustomersApi
以更新受益所有人支持。更新现有模型。 - 1.0.16:有关更多信息,请参阅 GitHub 发布版本。
- 1.0.15:可选参数设置为 null。
- 1.0.14:在初始化时从主机 URL 中删除尾随斜杠。
- 1.0.13:添加对IPv4和IPv6连接的控制。
- 1.0.12:更新
CustomersApi
以允许null的limit
、offset
和search
。 - 1.0.11:允许暂停webhook订阅暂停;添加了对
removed
资金来源查询参数的支持;等等。 - 1.0.10:修复软删除以使用FundingSource模型反序列化。
- 1.0.9:添加布尔类型以修复反序列化。
- 1.0.8:在
FundingSourcesApi
中添加余额检查端点。修复了转账模型中转账失败的反序列化。 - 1.0.7:更新API模式,
CustomersAPI
支持客户搜索,在FundingSourcesApi
中添加了新的软删除方法。 - 1.0.6:更新
TransfersApi
以包括取消和获取转账费用。添加了一些新的模型并更新了一些现有模型。 - 1.0.5:修复API模式错误,
FundingSource
对象现在具有_embedded
键以修复序列化问题。避免使用保留的PHP函数名。CustomersApi
获得IAV验证的端点。添加了VerificationToken
模型。 - 1.0.3:添加了
RootApi
。将auth_token
更改为access_token
以符合RFC-6749命名约定。 - 1.0.2:为
FundingsourcesApi
添加了新方法。对HTTP 201响应的更自然的响应逻辑。 - 1.0.1:更新API模式,在
CustomersApi
和TransfersApi
中添加了新方法。 - 1.0.0:初始版本。
社区
- 如果您有任何反馈,请通过我们的论坛或通过创建GitHub问题与我们联系。
- 如果您想为这个库做出贡献,错误报告和拉取请求总是受欢迎!
其他资源
要了解更多关于Dwolla以及如何将我们的产品集成到您的应用程序中,请考虑访问以下资源并成为我们社区的一员!
致谢
此包装器由swagger-codegen的分支通过语义生成swagger-codegen。