sarani / cryptopay
多币种加密货币支付。随时使用加密货币支付。
Requires
- guzzlehttp/guzzle: ^6.0
README
cryptopay是一个支持多种加密货币的php库,用于加密货币支付。使用此库,您可以为您的网站、应用程序和Telegram 机器人添加并支持加密货币支付。
开始使用
要使用此库,您需要使用CryptoBot创建一个免费的Telegram账户。
安装
使用composer包管理器安装sarani/cryptopay。
composer require sarani/cryptopay
使用方法和说明
// use Sarani\CryptoBot; # init $cryp_payment_token = 'token'; $mode = 'test'; // empty for real account $crypto = new Sarani\CryptoPay\Api($cryp_payment_token, 'test');
getMe
使用此方法测试您的应用程序的认证令牌。无需参数。成功时,返回有关应用程序的基本信息。
$me = $crypto->getMe();
createInvoice
使用此方法创建新的发票。成功时,返回创建的发票对象。
-
asset(字符串)货币代码。支持资产:“BTC”、“TON”、“ETH”(仅测试网)、“USDT”、“USDC”和“BUSD”。
-
amount(字符串)发票金额,以浮点数表示。例如:125.50
-
description(字符串)可选。发票的描述。用户在支付发票时将看到此描述。最多1024个字符。
-
hidden_message(字符串)可选。支付发票后显示给用户的文本。最多2048个字符。
-
paid_btn_name(字符串)可选。支付发票后显示给用户的按钮名称。支持名称:viewItem – “查看项目”,openChannel – “打开通道”,openBot – “打开机器人”,callback – “返回”
-
paid_btn_url(字符串)可选。如果使用paid_btn_name,则必填。按钮按下时要打开的URL。您可以设置任何成功链接(例如,指向您的机器人的链接)。以https或http开头。
-
payload(字符串)可选。您希望附加到发票的任何数据(例如,用户ID、支付ID等)。最多4kb。
-
allow_comments(布尔值)可选。允许用户向支付添加评论。默认为true。
-
allow_anonymous(布尔值)可选。允许用户匿名支付发票。默认为true。
-
expires_in(数字)可选。您可以设置发票的支付时间限制(以秒为单位)。接受1-2678400之间的值。
# create invoice, return Invoices object $inv = $crypto->createInvoice($params = [ 'asset' => 'USDT', 'amount' => '2.50', 'payload' => '11158', # subscription id 'allow_comments' => False, 'allow_anonymous' => True, 'paid_btn_name' => 'openBot', 'paid_btn_url' => 'https://t.me/demobot', 'hidden_message' => 'Thanks for your payment', 'description' => 'Monthly Subscription' ]); echo $inv->id(); echo $inv->url();
getInvoices
- asset(字符串)可选。以逗号分隔的货币代码。支持资产:“BTC”、“TON”、“ETH”(仅测试网)、“USDT”、“USDC”和“BUSD”。默认为所有资产。
- invoice_ids(字符串)可选。以逗号分隔的发票ID。
- status(字符串)可选。要返回的发票状态。可用状态:“active”(活动)和“paid”(已支付)。默认为所有状态。
- offset(数字)可选。返回特定子集发票所需的偏移量。默认为0。
- count(数字)可选。要返回的发票数量。接受1-1000之间的值。默认为100。
# get invoice, return array of Invoices object $res = $crypto->getInvoices($params = [ 'asset' => 'TON', // Crypto symbols 'invoice_ids' => '12600,12626,12745', // ids seperated by comma ]);
transfer
使用此方法将您的应用程序余额中的硬币发送给用户。成功时,返回完成的转账对象。
- user_id(数字)Telegram用户ID。用户必须之前已使用CryptoBot(@CryptoTestnetBot用于测试网)。
- asset(字符串)货币代码。支持资产:“BTC”、“TON”、“ETH”(仅测试网)、“USDT”、“USDC”和“BUSD”。
- 金额(String)转账金额,以浮点数表示。支持的每种资产的最小和最大金额大致对应于0.01-25000美元的限额。使用getExchangeRates转换金额。例如:125.50
- spend_id(String)唯一的ID,用于确保请求的幂等性,并确保只有具有相同spend_id的转账会被Crypto Pay API接受。当需要重试转账(例如请求超时、连接重置、500 HTTP状态等)时,此参数非常有用。可以是某些唯一的提款标识符。最多64个符号。
- 注释(String)可选。转账注释。用户在收到转账通知时将看到此注释。最多1024个符号。
- disable_send_notification(Boolean)可选。如果用户不应收到转账通知,请传递true。默认值为false。
# transfer to user, return Transfer object $transfer = $crypto->transfer($params = [ 'user_id' => '1111111', // telegram user_id 'asset' => 'USDT', // Crypto 'amount' => '2.50', // amount 'spend_id' => '1001', # reequest uniqe id to avoid double transfer 'disable_send_notification' => False, 'comment' => 'gift transfer' ]);
getBalance
使用此方法获取您应用程序的余额。返回资产数组。
getExchangeRates
使用此方法获取支持的货币的汇率。返回货币数组。
getCurrencies
使用此方法获取支持的货币列表。返回货币数组。
Webhooks getUpdate
使用Webhooks获取您应用程序的更新。Webhook请求至少发送一次。
要确保Webhook请求是由Crypto Pay API发送的,请使用URL中的秘密路径,例如:https://www.example.com/。由于没有人知道您的应用程序令牌,您可以相当确信它是CryptoBot。
如何启用Webhooks?打开CryptoBot(测试网为@CryptoTestnetBot),进入Crypto Pay → 我的App,选择一个App,打开‘Webhooks’并点击‘启用Webhooks’。然后发送用于接收更新的HTTPS URL。
# webhook, return Webhook object with Update and Invoice $hook = new Sarani\CryptoPay\Webhook(); $update = $hook->getUpdate(); // Update object $nvoice = $update->getPayload(); // Invoice Object echo( $nvoice->status());
贡献
欢迎提交拉取请求。对于重大更改,请首先打开一个问题以讨论您想要更改的内容。
免责声明
本项目及其作者与CryptoBot无关。
财务支持
此库的使用是免费的,但如果您喜欢它,任何支持都是受欢迎的。
直接发送
- TON:
UQC09HtKpaK0prsE1X-V7cnk5JE_NrSy4bgTxVeCU8kfO1A6- BTC:
17sL8eapiCs1eeq2nRVAZozsn6ws9HCToP- BTC, TON, USDT, USDC, BUSD, BNB:通过CryptoBot转账
许可证
本项目根据MIT许可证许可。