ninoskopac / promisepay-php
此包的最新版本(v2.2)没有提供许可证信息。
PromisePay API 的 PHP SDK
v2.2
2016-06-10 11:54 UTC
Requires
- php: >=5.3.3
- ext-json: *
- ext-mbstring: *
- nategood/httpful: *
Requires (Dev)
- phpunit/phpunit: 4.7.7
- satooshi/php-coveralls: ~0.6.1
- squizlabs/php_codesniffer: ~2.0
This package is not auto-updated.
Last update: 2024-09-12 02:17:45 UTC
README
注意:API 仅对包含在 PHP 包中的模型做出响应。
- 安装
- 配置
- 示例
- 异步和包装器
- 贡献
安装
Composer
您可以通过Composer包含此包。
{ "require": { "promisepay/promisepay-php": "2.*" } }
安装此包。
composer install
在您将使用它的控制器中需要此包。
use PromisePay\PromisePay;
手动安装
从GitHub下载最新版本,然后在相关控制器中需要此包。
use PromisePay\PromisePay;
先决条件
配置
在与PromisePay API交互之前,您需要 创建一个prelive账户 并获取一个API令牌。
之后,您需要声明环境、登录(您的电子邮件地址)和密码(API令牌),因此
PromisePay::Configuration()->environment('prelive'); // Use 'production' for the production environment. PromisePay::Configuration()->login('your_email_address'); PromisePay::Configuration()->password('your_token');
示例
令牌
请求会话令牌
以下示例显示了为自动生成项和用户ID配置的市场请求。
$token = PromisePay::Token()->requestSessionToken(array( 'current_user' => 'seller', 'item_name' => 'Test Item', 'amount' => '2500', 'seller_lastname' => 'Seller', 'seller_firstname' => 'Sally', 'buyer_lastname' => 'Buyer', 'buyer_firstname' => 'Bobby', 'buyer_country' => 'AUS', 'seller_country' => 'USA', 'seller_email' => 'sally.seller@promisepay.com', 'buyer_email' => 'bobby.buyer@promisepay.com', 'fee_ids' => '', 'payment_type_id' => '2' ));
项目
创建项目
$item = PromisePay::Item()->create(array( "id" => 'ITEM_ID', "name" => 'Test Item #1', "amount" => 1000, "payment_type_id" => 1, "buyer_id" => 'BUYER_ID', "seller_id" => 'SELLER_ID', "description" => 'Description' ));
获取项目
$item = PromisePay::Item()->get('ITEM_ID');
获取项目列表
$items = PromisePay::Item()->getList(array( 'limit' => 20, 'offset' => 0 ));
更新项目
$item = PromisePay::Item()->update('ITEM_ID', array( "id" => 'ITEM_ID', "name" => 'Test Item #1', "amount" => 1000, "payment_type_id" => 1, "buyer_id" => 'BUYER_ID', "seller_id" => 'SELLER_ID', "description" => 'Description' ));
删除项目
$item = PromisePay::Item()->delete('ITEM_ID');
获取项目状态
$item = PromisePay::Item()->getStatus('ITEM_ID');
获取项目的买家
$user = PromisePay::Item()->getBuyer('ITEM_ID');
获取项目的卖家
$user = PromisePay::Item()->getSeller('ITEM_ID');
获取项目的费用
$fees = PromisePay::Item()->getListOfFees('ITEM_ID');
获取项目的交易
$transactions = PromisePay::Item()->getListOfTransactions('ITEM_ID');
获取项目的电汇详情
$wireDetails = PromisePay::Item()->getWireDetails('ITEM_ID');
获取项目的 BPAY 详情
$bPayDetails = PromisePay::Item()->getBPayDetails('ITEM_ID');
项目操作
进行付款
$item = PromisePay::Item()->makePayment('ITEM_ID', array( 'account_id' => 'BUYER_ACCOUNT_ID' ));
请求付款
$item = PromisePay::Item()->requestPayment('ITEM_ID');
释放付款
$item = PromisePay::Item()->releasePayment('ITEM_ID');
请求释放
$item = PromisePay::Item()->requestRelease('ITEM_ID');
取消
$item = PromisePay::Item()->cancelItem('ITEM_ID');
确认电汇
$item = PromisePay::Item()->acknowledgeWire('ITEM_ID');
确认 PayPal
$item = PromisePay::Item()->acknowledgePayPal('ITEM_ID');
撤销电汇
$item = PromisePay::Item()->revertWire('ITEM_ID');
请求退款
$item = PromisePay::Item()->requestRefund('ITEM_ID', array( 'refund_amount' => 1000, 'refund_message' => 'Frame already constructed.' ));
退款
$item = PromisePay::Item()->refund('ITEM_ID', array( 'refund_amount' => 1000, 'refund_message' => 'Stable deck refund.' ));
拒绝退款
$declineRefund = PromisePay::Item()->declineRefund( 'ITEM_ID' );
提出争议
$raiseDispute = PromisePay::Item()->raiseDispute( 'ITEM_ID', 'BUYER_ID' );
请求争议解决
$requestDisputeResolution = PromisePay::Item()->requestDisputeResolution( 'ITEM_ID' );
解决争议
$resolveDispute = PromisePay::Item()->resolveDispute( 'ITEM_ID' );
升级争议
$resolveDispute = PromisePay::Item()->escalateDispute( 'ITEM_ID' );
请求税务发票
$requestTaxInvoice = PromisePay::Item()->requestTaxInvoice( 'ITEM_ID' );
列出项目批量交易
$batchTransactions = PromisePay::Item()->listBatchTransactions('ITEM_ID');
发送税务发票
$sendTaxInvoice = PromisePay::Item()->sendTaxInvoice( 'ITEM_ID' );
用户
创建用户
$user = PromisePay::User()->create(array( 'id' => 'USER_ID', 'first_name' => 'UserCreateTest', 'last_name' => 'UserLastname', 'email' => 'email@google.com', 'mobile' => '5455400012', 'address_line1' => 'a_line1', 'address_line2' => 'a_line2', 'state' => 'state', 'city' => 'city', 'zip' => '90210', 'country' => 'AUS' ));
获取用户
$user = PromisePay::User()->get('USER_ID');
获取用户列表
$users = PromisePay::User()->getList(array( 'limit' => 20, 'offset' => 0 ));
更新用户
$user = PromisePay::User()->update('USER_ID', array( 'id' => 'USER_ID', 'first_name' => 'UserCreateTest', 'last_name' => 'UserLastname', 'email' => 'email@google.com', 'mobile' => '5455400012', 'address_line1' => 'a_line1', 'address_line2' => 'a_line2', 'state' => 'state', 'city' => 'city', 'zip' => '90210', 'country' => 'AUS' ));
获取用户的卡账户
$accounts = PromisePay::User()->getListOfCardAccounts('USER_ID');
获取用户的 PayPal 账户
$accounts = PromisePay::User()->getListOfPayPalAccounts('USER_ID');
获取用户的银行账户
$accounts = PromisePay::User()->getListOfBankAccounts('USER_ID');
获取用户的项目
$items = PromisePay::User()->getListOfItems('USER_ID');
显示用户钱包账户
$accounts = PromisePay::User()->getListOfWalletAccounts('USER_ID');
设置用户的支付账户
$account = PromisePay::User()->setDisbursementAccount('USER_ID', array( 'account_id' => 'ACCOUNT_ID' ));
钱包账户
显示钱包账户
$wallet = PromisePay::WalletAccounts()->show('WALLET_ID');
提取资金
// Withdraw to PayPal // Authorize bank account to be used as a funding source $authority = PromisePay::DirectDebitAuthority()->create( array( 'account_id' => 'SOURCE_BANK_ID', 'amount' => 100 ) ); $withdrawal = PromisePay::WalletAccounts()->withdraw( 'SOURCE_BANK_ID', array( 'account_id' => 'PAYPAY_ACCOUNT_ID', 'amount' => 100 ) ); // Withdraw to Bank Account // Authorize bank account to be used as a funding source $authority = PromisePay::DirectDebitAuthority()->create( array( 'account_id' => 'SOURCE_BANK_ID', 'amount' => 100 ) ); $withdrawal = PromisePay::WalletAccounts()->withdraw( 'SOURCE_BANK_ID', array( 'account_id' => 'TARGET_BANK_ID', 'amount' => 100 ) );
存入资金
// Authorize bank account to be used as a funding source $authority = PromisePay::DirectDebitAuthority()->create( array( 'account_id' => 'SOURCE_BANK_ID', 'amount' => 100 ) ); $deposit = PromisePay::WalletAccounts()->deposit( 'TARGET_WALLET_ID', array( 'account_id' => 'SOURCE_BANK_ID', 'amount' => 100 ) );
显示钱包账户用户
$walletUser = PromisePay::WalletAccounts()->getUser('WALLET_ID');
卡账户
创建卡账户
$account = PromisePay::CardAccount()->create(array( 'user_id' => 'USER_ID', 'full_name' => 'Bobby Buyer', 'number' => '4111111111111111', "expiry_month" => '06', "expiry_year" => '2020', "cvv" => '123' ));
获取卡账户
$account = PromisePay::CardAccount()->get('CARD_ACCOUNT_ID');
删除卡账户
$account = PromisePay::CardAccount()->delete('CARD_ACCOUNT_ID');
获取卡账户的用户
$user = PromisePay::CardAccount()->getUser('CARD_ACCOUNT_ID');
银行账户
创建银行账户
$account = PromisePay::BankAccount()->create(array( "user_id" => 'USER_ID', "active" => 'true', "bank_name" => 'bank for test', "account_name" => 'test acc', "routing_number" => '12344455512', "account_number" => '123334242134', "account_type" => 'savings', "holder_type" => 'personal', "country" => 'USA', ));
获取银行账户
$account = PromisePay::BankAccount()->get('BANK_ACCOUNT_ID');
删除银行账户
$account = PromisePay::BankAccount()->delete('BANK_ACCOUNT_ID');
获取银行账户的用户
$user = PromisePay::BankAccount()->getUser('BANK_ACCOUNT_ID');
验证路由号码
$validateRoutingNumber = PromisePay::BankAccount()->validateRoutingNumber( 'ROUTING_NUMBER' );
PayPal 账户
创建 PayPal 账户
$account = PromisePay::PayPalAccount()->create(array( 'user_id' => 'USER_ID', 'paypal_email' => 'test@paypalname.com' ));
获取 PayPal 账户
$account = PromisePay::PayPalAccount()->get('PAYPAL_ACCOUNT_ID');
删除 PayPal 账户
$account = PromisePay::PayPalAccount()->delete('PAYPAL_ACCOUNT_ID');
获取 PayPal 账户的用户
$user = PromisePay::PayPalAccount()->getUser('PAYPAL_ACCOUNT_ID');
批量交易
列出批量交易
$batches = PromisePay::BatchTransactions()->listTransactions();
显示批量交易
$batch = PromisePay::BatchTransactions()->showTransaction( 'BATCH_TRANSACTION_ID' );
费用
创建费用
$createCharge = PromisePay::Charges()->create( array ( 'account_id' => 'CARD_OR_BANK_ACCOUNT_ID', 'amount' => 100, 'email' => 'charged.user@email.com', 'zip' => 90210, 'country' => 'AUS', 'device_id' => 'DEVICE_ID', 'ip_address' => '49.229.186.182' ) );
列出费用
$getList = PromisePay::Charges()->getList();
显示费用
$charge = PromisePay::Charges()->show('CHARGE_ID');
显示费用买家
$buyer = PromisePay::Charges()->showBuyer('CHARGE_ID');
显示费用状态
$status = PromisePay::Charges()->showStatus('CHARGE_ID');
市场
显示市场
$marketplaces = PromisePay::Marketplaces()->show();
令牌身份验证
生成卡令牌
$cardToken = PromisePay::Token()->generateCardToken( array ( 'token_type' => 'card', 'user_id' => 'USER_ID' ) );
直接借记授权
创建直接借记授权
$directDebitAuthority = PromisePay::DirectDebitAuthority()->create( array ( 'account_id' => 'ACCOUNT_ID', 'amount' => 100 ) );
列出直接借记授权
$getList = PromisePay::DirectDebitAuthority()->getList( array ( 'account_id' => 'BANK_ACCOUNT_ID' ) );
显示直接借记授权
$directDebitAuthority = PromisePay::DirectDebitAuthority()->show( 'DIRECT_DEBIT_AUTHORITY_ID' );
删除直接借记授权
$deleteDirectDebitAuthority = PromisePay::DirectDebitAuthority()->delete( 'DIRECT_DEBIT_AUTHORITY_ID' );
公司
创建公司
$company = PromisePay::Company()->create(array( 'user_id' => 'USER_ID', 'legal_name' => 'Test edit company', 'name' => 'test company name edit', 'country' => 'AUS' ));
获取公司
$company = PromisePay::Company()->get('COMPANY_ID');
获取公司列表
$companys = PromisePay::Company()->getList(array( 'limit' => 20, 'offset' => 0 ));
更新公司
$company = PromisePay::Company()->update('COMPANY_ID', array( 'id' => "e466dfb4-f05c-4c7f-92a3-09a0a28c7af5", 'user_id' => "1", 'name' => "Acme Co", 'legal_name' => "Acme Co Pty Ltd", 'tax_number' => "1231231", 'charge_tax' => true, 'address_line1' => "123 Test St", 'address_line2' => "", 'city' => "Melbourne", 'state' => "VIC", 'zip' => "3000", 'country' => "AUS" ));
费用
获取费用列表
$fees = PromisePay::Fee()->getList(array( 'limit' => 20, 'offset' => 0 ));
获取费用
$fee = PromisePay::Fee()->get('FEE_ID');
创建费用
$fee = PromisePay::Fee()->create(array( 'amount' => 1000, 'name' => 'fee test', 'fee_type_id' => '1', 'cap' => '1', 'max' => '3', 'min' => '2', 'to' => 'buyer' ));
交易
获取交易列表
$transactions = PromisePay::Transaction()->getList(array( 'limit' => 20, 'offset' => 0 ));
获取交易
$transaction = PromisePay::Transaction()->get('TRANSACTION_ID');
获取交易的用户
$user = PromisePay::Transaction()->getUser('TRANSACTION_ID');
获取交易的费用
$fee = PromisePay::Transaction()->getFee('TRANSACTION_ID');
显示交易钱包账户
$walletAccount = PromisePay::Transaction()->getWalletAccount( 'TRANSACTION_ID' );
显示交易卡账户
$cardAccount = PromisePay::Transaction()->getCardAccount( 'TRANSACTION_ID' );
地址
显示地址
$address = PromisePay::Address()->get('ADDRESS_ID');
工具
健康检查
$healthStatus = PromisePay::Tools()->getHealth();
配置
创建配置
$configuration = PromisePay::Configurations()->create(array( 'name' => 'partial_refunds', 'enabled' => true ));
显示配置
$configuration = PromisePay::Configurations()->get('CONFIGURATION_ID');
列出配置
$configurations = PromisePay::Configurations()->getList();
更新配置
$configuration = PromisePay::Configurations()->update(array( 'id' => 'CONFIGURATION_ID', 'max' => 12345, 'name' => 'partial_refunds', 'enabled' => true ));
删除配置
PromisePay::Configurations()->delete('CONFIGURATION_ID');
支付限制
列出支付限制
$list = PromisePay::PaymentRestrictions()->getList();
显示支付限制
$paymentRestriction = PromisePay::PaymentRestrictions()->get('PAYMENT_RESTRICTION_ID');
回调
创建回调
$callback = PromisePay::Callbacks()->create(array( 'description' => 'Users Callback', 'url' => 'https://domain.tld/your/post/endpoint', 'object_type' => 'users', 'enabled' => true ));
列出回调
$getList = PromisePay::Callbacks()->getList();
显示回调
$getCallback = PromisePay::Callbacks()->get('f92d4ca1-4ee5-43f3-9e34-ca5f759c5e76');
更新回调
$update = PromisePay::Callbacks()->update('f92d4ca1-4ee5-43f3-9e34-ca5f759c5e76', array( 'description' => 'Users Callback', 'url' => 'https://domain.tld/your/post/endpoint', 'object_type' => 'users', 'enabled' => false ));
删除回调
$delete = PromisePay::Callbacks()->delete('f92d4ca1-4ee5-43f3-9e34-ca5f759c5e76');
列表回调响应
$callbackResponsesList = PromisePay::Callbacks()->getListResponses('f92d4ca1-4ee5-43f3-9e34-ca5f759c5e76');
显示回调响应
$callbackResponse = PromisePay::Callbacks()->getResponse( 'f92d4ca1-4ee5-43f3-9e34-ca5f759c5e76', // callback ID '4476b384-fa48-4473-98ec-8fcdda4a1e84' // response ID );
异步和包装器
异步
与同步执行相比,异步执行提供了显著的速度提升。
PromisePay::AsyncClient( function() { PromisePay::Token()->generateCardToken('CARD_TOKEN_ID'); }, function() { PromisePay::Transaction()->get('TRANSACTION_ID'); }, function() { PromisePay::Transaction()->getUser('USER_ID'); }, function() { PromisePay::BatchTransactions()->listTransactions(); } )->done( $cardToken, $transaction, $transactionUser, $batchTransactions );
响应变量放置在 done()
方法内部;它们可以作为数组和使用对象,但使用对象提供了更细粒度的控制。例如,以下将返回等效数据:$cardToken['user_id']
和 $cardToken->getJson('user_id')
。
响应变量包含以下方法/获取器
getJson()
-> 完整的响应JSONgetMeta()
-> 从响应JSON中提取的元数组,如果存在getLinks()
-> 从响应JSON中提取的链接数组,如果存在getDebug()
-> 响应头
包装器
有两个包装器可用:PromisePay::getAllResults()
和 PromisePay::getAllResultsAsync()
。它们可用于从结果页面集合中获取所有结果,而不是每次请求最多200个。例如,它们可以用于一次性获取所有批量交易。请注意,这些请求可能需要一些时间,具体取决于请求的数量。如果必须获取所有结果,无论大小如何,请使用同步版本。对于更快的版本,请使用异步版本,但并非所有请求都能保证返回。通常,异步执行对于最多20页、每页最多200个结果的页面是可行的,在几秒钟内产生4000个结果。
同步执行
$batchedTransactionsList = PromisePay::getAllResults(function($limit, $offset) { PromisePay::BatchTransactions()->listTransactions( array( 'limit' => $limit, 'offset' => $offset ) ); });
异步执行
$batchedTransactionsList = PromisePay::getAllResultsAsync(function($limit, $offset) { PromisePay::BatchTransactions()->listTransactions( array( 'limit' => $limit, 'offset' => $offset ) ); });
贡献
1. Fork it ( https://github.com/PromisePay/promisepay-php/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request