promisepay/promisepay-php

此包最新版本(2.4.5)没有提供许可证信息。

PromisePay API 的 PHP SDK

2.4.5 2017-08-30 00:56 UTC

README

Build Status Latest Stable Version Total Downloads Code Climate

注意:API 只响应 PHP 包中包含的模型。

安装

Composer

您可以通过Composer包含此包。

{
  "require": {
    "promisepay/promisepay-php": "2.*"
  }
}

安装包。

composer install

在您将要使用它的控制器中需要此包。

use PromisePay\PromisePay;

手动安装

从GitHub下载最新版本,然后在相关控制器中需要此包。

use PromisePay\PromisePay;

先决条件

  • PHP 5.3或更高版本
  • curljson 扩展必须启用

配置

在与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() -> 完整的响应JSON
  • getMeta() -> 从响应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