b2binpay/api-php

此包已被废弃,不再维护。未建议替代包。

B2BinPay 的 PHP 客户端

1.2.1 2020-10-15 13:32 UTC

This package is auto-updated.

Last update: 2024-06-29 04:52:12 UTC


README

B2BinPay API 的 PHP 客户端

接受以下加密货币:BitcoinBitcoin CashEthereumDASHLitecoinMoneroNEONEMRippleCardanoDogecoinZcashStellarEOSTRONBinance Coin 以及任何 ERC20 和稳定币,NEO 代币均在一个地方!

Build Status Scrutinizer Code Quality Coverage Status

要求

  • B2BinPay 账户
  • PHP >= 7.1(如果您需要 7.0,请使用 版本 1.1.0
  • 启用的 PHP 扩展:cURL,JSON

Composer 安装

安装 B2BinPay API 客户端最简单的方法是通过命令行使用 Composer 要求它

composer require b2binpay/api-php

或通过编辑 composer.json

    {
  "require": {
    "b2binpay/api-php": "^1.2"
  }
}

本地安装

composer install --no-dev
cp .env.example .env

支持的货币

货币 名称 区块链,链接
ADA Cardano Cardano
BCH Bitcoin Cash Bitcoin Cash
BNB Binance Coin Binance Chain, BEP2
BTC Bitcoin Bitcoin
BUSD-ETH Binance USD Ethereum, Stablecoin
DAI-ETH Dai Ethereum, Stablecoin
DASH Dash Dash
DOGE Dogecoin Dogecoin
EOS EOS EOS
ETH Ethereum Ethereum
GUSD-ETH Gemini Dollar Ethereum, Stablecoin
LTC Litecoin Litecoin
NEO Neo Neo
PAX-ETH Paxos Standard Ethereum, Stablecoin
TRX TRON TRON
TUSD-ETH TrueUSD Ethereum, Stablecoin
USDC-ETH USD Coin Ethereum, Stablecoin
USDT-ETH Tether Ethereum, Stablecoin
USDT-OMNI Tether OMNI,稳定币
XEM NEM NEM
XLM Stellar Stellar
XMR Monero Monero
XRP Ripple Ripple
ZEC Zcash Zcash

入门

examples/README.md中查看带注释的示例

创建Provider实例

使用API密钥和秘密访问您的B2BinPay账户

$provider = new B2Binpay\Provider(
    'API_KEY',
    'API_SECRET'
);

测试模式

为了使用测试沙盒,将true作为B2Binpay\Provider的第三个参数传递

$provider = new B2Binpay\Provider(
    'API_KEY',
    'API_SECRET',
    true
);

警告:沙盒和主网关有其自己的密钥和秘密对!

创建账单

支付货币被认为是与您的钱包货币匹配.

创建新的账单

$bill = $provider->createBill(  
        'WALLET_ID',
        'AMOUNT',
        'CURRENCY',
        'LIFETIME',
        'TRACKING_ID',
        'CALLBACK_URL',
        'SUCCESS_URL',
        'ERROR_URL'
  );
参数 描述
WALLET_ID (int) 每个钱包只负责创建分配给它的货币的账单
AMOUNT (string) 创建的货币价值金额
CURRENCY (string) 请参阅上表中的支持货币列表
LIFETIME (int) 设置账单从当前创建日期到期的时间(秒)
TRACKING_ID (string) 可选. 用于账单跟踪。此值将在回调中返回
CALLBACK_URL (string) 可选. 将发送回调的URL
SUCCESS_URL (string) _
可选_. 用户成功支付后可以发送的URL,仅在支付页面上使用
ERROR_URL (string) _
可选_. 用户支付失败后可以发送的URL,仅在支付页面上使用

货币转换

您可以获取实际汇率并按照您的钱包参数转换支持货币。

获取BASE_CURRENCY的汇率

$rates = $provider->getRates('BASE_CURRENCY', 'RATE_TYPE');
参数 描述
BASE_CURRENCY (string) 可选. 计算汇率的货币。默认:USD
RATE_TYPE (string) 可选. 接收汇率的类型,对于 存款取款。默认:存款

使用实际汇率进行货币转换

$amount = $provider->convertCurrency('AMOUNT', 'BASE_CURRENCY', 'CURRENCY', $rates);
参数 描述
AMOUNT (string) 要转换的货币金额
BASE_CURRENCY (string) 指示金额的货币
CURRENCY (string) 您要转换的金额的货币
$rates (array) _
可选_. 当前汇率。如果未指定参数,则将再次请求汇率

现在您可以提供$amount变量作为createBill()方法的第二个参数,以设置准确的加密货币金额。

添加加价

您可以在现有金额上添加一些加价。

为当前金额设置10%的加价

$amount = $provider->addMarkup($amount, 'CURRENCY', 10);
参数 描述
$amount (string) 添加加价的金额
CURRENCY (string) 添加加价的货币
10 (int) 添加加价的百分比

回调

一旦账单状态发生变化,我们的服务器可以向您配置的回调URL发送回调。此外,您还可以指定跟踪ID,它将随回调返回以识别确切的订单。为此,请向createBill()方法提供附加参数

$bill = $provider->createBill(
        'WALLET_ID',
        $amount,
        'CURRENCY',
        'LIFETIME',
        '202009051801',
        'https://my.callback.url/callback.php'
    );

警告:如果指定,您的回调URL应该返回状态为200的消息“OK”。在此之前,将不会认为付款已完成!

header('HTTP/1.1 200 OK');
exit('OK');

回调验证

您可以通过将其与$provider->verifySign()方法的输出进行比较来验证回调请求头

$verifySign = $provider->verifySign($_POST['sign']['time'], $_POST['sign']['hash']);
if (!$verifySign) {
    header('HTTP/1.1 401 Unauthorized');
    exit();
}

警告:对于每个回调,$ _POST ['sign'] ['hash']将生成一个新的哈希值 - 如果您收到了之前已经使用过的$ _POST ['sign'] ['hash'],则应该抛出与签名验证相同的错误

回调体

账单回调请求将包含以下数据

{
  "data": {
    "id": BILL_ID,
    "url": URL_TO_BILL_PAYMENT_PAGE,
    "address": BLOCKCHAIN_ADDRESS,
    "created": TIME,
    "expired": TIME
    |
    NULL,
    "status": BILL_STATUS,
    "tracking_id": TRACKING_ID,
    "callback_url": URL
    |
    NULL
    "amount": AMOUNT_MULTIPLIED_BY_TEN_IN_POW,
    "actual_amount": ALREADY_PAID_AMOUNT_MULTIPLIED_BY_TEN_IN_POW,
    "pow": POW,
    "message": MESSAGE
    |
    NULL,
    "transactions": [
      {
        "id": TRANSACTION_ID,
        "bill_id": BILL_ID,
        "created": TIME,
        "amount": TRANSACTION_AMOUNT_MULTIPLIED_BY_TEN_IN_POW
        ",
        "pow": POW,
        "status": TRANSACTION_STATUS,
        "transaction": HASH_TRANSACTION_IN_BLOCKCHAIN,
        "type": 0,
        "currency": {
          "iso": ISO_CODE_CURRENCY,
          "alpha": SYMBOL_CURRENCY
        }
      }
    ],
    "currency": {
      "iso": ISO_CODE_CURRENCY,
      "alpha": SYMBOL_CURRENCY
    },
    "sign": {
      "time": TIME,
      "hash": HASH
    }
  }
}

取款回调请求将包含以下数据

{
  "data": {
    "id": WITHDRAW_ID,
    "virtual_wallet_id": VIRTUAL_WALLET_ID,
    "with_fee": INCLUDE_COMMISSION_IN_WITHDRAW,
    "created": TIME,
    "address": BLOCKCHAIN_ADDRESS,
    "amount": AMOUNT_MULTIPLIED_BY_TEN_IN_POW,
    "fee": BLOCKCHAIN_FEE_MULTIPLIED_BY_TEN_IN_POW,
    "pow": POW,
    "status": WITHDRAW_STATUS,
    "transaction": HASH_TRANSACTION_IN_BLOCKCHAIN
    |
    NULL
    "tracking_id": TRACKING_ID
    |
    NULL,
    "unique_id": UNIQUE_WITHDRAW_ID,
    "callback_url": URL
    |
    NULL,
    "message": MESSAGE
    |
    NULL,
    "currency": {
      "iso": ISO_CODE_CURRENCY,
      "alpha": SYMBOL_CURRENCY
    },
    "sign": {
      "time": TIME,
      "hash": HASH
    }
  }
}

创建取款

从虚拟钱包中,您可以向任何区块链进行提款,为此您需要指定地址和货币.

创建新的提款

$bill = $provider->createWithdrawal(  
        'VIRTUAL_WALLET_ID',
        'AMOUNT',
        'CURRENCY',
        'ADDRESS',
        'UNIQUE_ID',
        'TRACKING_ID',
        'CALLBACK_URL',
        'MESSAGE',
        'WITH_FEE'
    );
参数 描述
VIRTUAL_WALLET_ID (int) 虚拟钱包的ID。如果虚拟钱包的货币与提款所需货币不匹配,系统将自动按当前汇率进行转换
AMOUNT (string) 要提款的金额
CURRENCY (string) 请参阅上表中的支持货币列表
ADDRESS (string) 您希望提款的区块链地址
UNIQUE_ID (int) 任何唯一的正数。这个数字在每次提款时不应重复
TRACKING_ID (string) 可选. 用于提款追踪。此值将在回调中返回
CALLBACK_URL (string) 可选. 将发送回调的URL
MESSAGE (string) 可选. 用于Ripple区块链、NEM、Stellar、EOS和Binance Chain
WITH_FEE (boolean) _
可选_. 将手续费包含在提款金额中。并非所有区块链都支持此方法

系统状态列表

账单状态列表

状态 描述
-2 失败
-1 过期
1 创建
2 已支付

交易状态列表

状态 描述
-4 等待返回
-3 已返回
-2 失败
-1 过期
0 待处理
1 已发送
2 已批准

提款状态列表

状态 描述
-2 失败
0 等待中
1 待处理
2 已发送

转账状态列表

状态 描述
-1 失败
0 待处理
1 已发送

转账类型列表

状态 描述
0 区块链存款
1 银行转账
2 自动提款
3 区块链提款手续费
4 代币支付手续费
5 财务存款
6 银行转账手续费
7 手续费

许可证

B2BinPay\API-PHP遵循MIT许可证