capitual/cappay-php-sdk

CapPay (Capitual支付网关)的PHP SDK

1.0.4 2019-07-29 09:51 UTC

This package is auto-updated.

Last update: 2024-09-29 05:28:43 UTC


README

这是CapPay的PHP SDK。

使用此SDK,您可以在几分钟内开始接收加密货币支付!

登录

请注意,您需要在CapPay按钮生成器上登录。

您还需要您的商户ID,可以在您的Capitual个人资料中找到。

安装

您可以选择下载库或使用Composer直接安装。

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
}