capitual / cappay-php-sdk
CapPay (Capitual支付网关)的PHP SDK
This package is auto-updated.
Last update: 2024-09-29 05:28:43 UTC
README
这是CapPay的PHP SDK。
使用此SDK,您可以在几分钟内开始接收加密货币支付!
登录
请注意,您需要在CapPay按钮生成器上登录。
您还需要您的商户ID,可以在您的Capitual个人资料中找到。
安装
composer require capitual/cappay-php-sdk
之后,在您的项目(或Composer的autoload文件)中包含CapPay.php文件,您就可以开始使用CapPay了。
创建新的发票
为了发送新的发票以接收新的支付,创建Capitual\CapPay类的新实例。
$invoice = new \Capitual\CapPay;
然后设置您的商户ID。
$invoice->merchant = 1234;
设置将接收此支付资金的Capitual钱包地址。这不是一个加密钱包地址。这是您的一个Capitual钱包的地址。请注意,您可以选择任何货币的钱包,但如果货币与发票货币(我们将在下面设置)不同,将应用汇率。否则,不涉及任何费用。
$invoice->wallet = 'CAP-XXXXXXXX-XXXXXX-XX';
现在,设置支付货币和金额。金额是一个字符串。始终使用点(.)作为小数点(如果这对您的用例不重要,请不要担心使用正确的小数位数),而不是逗号。
货币可以是以下之一
$invoice->currency = 'USD'; $invoice->value = '100.00';
现在,设置收款人的电子邮件地址。请注意,发票也将发送到他的电子邮件。
$invoice->payee = 'johndoe@mailinator.com';
如果您想,您还可以为您的客户设置一个可读的支付描述
$invoice->description = 'Payment for order 123'; // optional
可选设置过期日期,作为一个Unix时间戳(UTC时区)。
$invoice->expires = strtotime("+48 hours"); // optional
IPN:如果您想,您可以为Capitual服务器在支付完成后应调用的公共可访问URL设置。您可以包含查询字符串变量。
$invoice->ipn = 'https://mysite.com/ipn.php'; // optional
这就完了!要创建发票,只需做
$invoice->create();
发票创建后,您可以使用以下方法检索其ID
$invoice_id = $invoice->id; // proceed to save $invoice_id to the database...
您也可以使用以下方法获取其URL
$url = $invoice->url; // or a short link $url = $invoice->getShortLink();
您可以将此URL重定向或创建链接供用户支付。
还建议设置一个返回URL,用户支付后将重定向到该URL(短链接上不适用)。要做到这一点,只需附加一个“return_url”查询参数。
$url = $invoice->url.'?return_url=http://yoursite.com/thanks.php';
请注意,请求您的return_url的用户并不代表支付已完成,因为加密交易需要等待确认时间。在确认之前交付产品/服务是危险的,可能会导致其丢失,因为费用较低的交易可能永远不会被确认。使用IPN(见下一篇文章)检查交易何时确认。
IPN - 即时支付通知
您设置为ipn的URL将接收HTTP POST请求(x-www-form-urlencoded)包含两个变量
消息类型可能是(注意大小写)
在理想情况下,仅使用IPN可能就足够了,但遗憾的是我们知道坏人们一直在试图破坏一切,他们可能会发现您的IPN URL并伪造请求,使您的系统认为已完成付款,而实际上并没有。因此,您不应将IPN请求作为可靠的真相来源。相反,只需将其视为一个通知。当您收到IPN请求时,您应该检索发票信息。
检索发票信息
为了检索发票信息,只需创建一个新实例,并将发票ID作为参数传递给构造函数
$invoice = new \Capitual\CapPay('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX');
现在,您可以得到类的每个属性,就像您刚刚设置的那样。
echo $invoice->currency; // "USD" echo $invoice->amount; // "100.00"
请注意,出于安全原因,使用此方法无法检索 $invoice->payee。您应该在创建发票后将它存储在您的数据库中。您可以通过登录到您的 Capitual 账户 或通过实现完整的 Capitual API 来检索发票收款人。
您可以使用以下方法获取发票状态
echo $invoice->status; // "pending", "paid", "canceled" or "expired"
为了提高代码可读性,发票状态字符串也作为静态值提供。
if ($invoice->status === \Capitual\CapPay::STATUS_PENDING) { // no payment has been received yet } elseif ($invoice->status === \Capitual\CapPay::STATUS_PAID) { // paid and confirmed } elseif ($invoice->status === \Capitual\CapPay::STATUS_CANCELED) { // invoice cancelled by its sender } elseif ($invoice->status === \Capitual\CapPay::STATUS_EXPIRED) { // due date has passed without payment }