financialplugins/omnipay-coinpayments

Coinpayments 驱动程序,用于 Omnipay 支付处理库

1.3.0 2020-12-19 10:43 UTC

This package is not auto-updated.

Last update: 2024-09-22 06:32:14 UTC


README

Coinpayments.net 驱动程序,用于Omnipay PHP 支付处理库。

安装

composer require financialplugins/omnipay-coinpayments

使用

初始化

在使用其他方法之前,此步骤是必须的。

$gateway = Omnipay::create('Coinpayments');
   
$gateway->initialize([
    'merchant_id'   => '...',
    'public_key'    => '...',
    'private_key'   => '...',
    'secret_key'    => '...'
);

获取账户信息

$response = $gateway->fetchAccountInfo()->send();

if ($response->isSuccessful()) {
    $data = $response->getData();
} else {
    $errorMessage = $response->getMessage();
}

获取账户余额

$response = $gateway->fetchBalance()->send();

if ($response->isSuccessful()) {
    $data = $response->getData();
} else {
    $errorMessage = $response->getMessage();
}

获取货币和汇率

$response = $gateway->fetchCurrencies()->send();

if ($response->isSuccessful()) {
    $data = $response->getData();
} else {
    $errorMessage = $response->getMessage();
}

获取交易信息

$response = $gateway
    ->fetchTransaction(['transactionReference' => '...'])
    ->send();

if ($response->isSuccessful()) {
    $data = $response->getData();
} else {
    $errorMessage = $response->getMessage();
}

获取提款信息

$response = $gateway
    ->fetchWithdrawal(['withdrawalReference' => '...'])
    ->send();

if ($response->isSuccessful()) {
    $data = $response->getData();
} else {
    $errorMessage = $response->getMessage();
}

创建交易

$response = $gateway
    ->createTransaction([
        'amount'            => '100',
        'currency'          => 'USD',
        'payment_currency'  => 'BTC',
        'description'       => 'Payment description',
        'client_email'      => 'email@email.com',
        'notify_url'        => 'https://yourwebsite/webhook'
    ])
    ->send();

if ($response->isRedirect()) {
    $data = $response->getData();

    EXAMPLE RESPONSE:
    {
      "amount":"1.00000000",
      "address":"ZZZ",
      "dest_tag":"YYY",
      "txn_id":"XXX",
      "confirms_needed":"10",
      "timeout":9000,
      "checkout_url":"https:\/\/www.coinpayments.net\/index.php?cmd=checkout&id=XXX&key=ZZZ"
      "status_url":"https:\/\/www.coinpayments.net\/index.php?cmd=status&id=XXX&key=ZZZ"
      "qrcode_url":"https:\/\/www.coinpayments.net\/qrgen.php?id=XXX&key=ZZZ"
    }

} else {
    $errorMessage = $response->getMessage();
}

创建提款

$response = $gateway
    ->createWithdrawal([
        'amount'            => '100',
        'currency'          => 'USD',
        'payment_currency'  => 'BTC',
        'description'       => 'Payment description',
        'address'           => 'XXXXXXXXXX',
        'auto_confirm'      => 0,
        'notify_url'        => 'https://yourwebsite/webhook'
    ])
    ->send();

if ($response->isSuccessful()) {
    $data = $response->getData();

    EXAMPLE RESPONSE:
    {
       "error":"ok",
       "result":{
          "id":"hex string",
          "status":0,
          "amount":1.00,
       }
    }

} else {
    $errorMessage = $response->getMessage();
}

验证 IPN 签名

$success = $gateway->isSignatureValid($payload, $hmacHeader)

支持

如果您在使用 Omnipay 时遇到一般性问题,我们建议您在 Stack Overflow 上发布。请务必添加 omnipay 标签,以便于查找。

如果您想了解最新的发布公告、讨论项目想法或提出更详细的问题,您还可以订阅 邮件列表

如果您认为您发现了一个错误,请使用 GitHub 问题跟踪器 报告它,或者更好的方法是分支库并提交拉取请求。