financialplugins / omnipay-coinpayments
Coinpayments 驱动程序,用于 Omnipay 支付处理库
1.3.0
2020-12-19 10:43 UTC
Requires
Requires (Dev)
- omnipay/tests: ^3.0
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 问题跟踪器 报告它,或者更好的方法是分支库并提交拉取请求。