pyr0hu / barion-web-php
Barion PHP库
Requires
- php: >=7.3
- ext-curl: *
This package is auto-updated.
Last update: 2024-09-25 22:18:41 UTC
README
BarionPHP是一个用于通过Barion智能网关管理在线电子货币和卡支付的紧凑型PHP库。它允许您只需几行代码即可接受信用卡和电子货币支付。
BarionPHP让您
- 轻松启动在线即时或预留支付
- 获取有关特定支付的详细信息
- 完全或部分完成正在进行的预留支付,支持自动退款
- 完全或部分退款完成的支付交易
只需几行简单的代码即可实现所有这些!
版本历史
- 1.4.4 2021年2月17日
- 1.4.3 2020年12月11日
- 1.4.2 2019年8月15日。
- 1.4.1 2019年8月14日。
- 1.4.0 2019年8月8日。
- 1.3.2 2019年8月5日。
- 1.3.1 2019年3月20日。
- 1.3.0 2019年3月12日。
- 1.2.9 2017年5月16日。
- 1.2.8 2017年4月13日。
- 1.2.7 2017年2月14日。
- 1.2.5 2016年11月7日。
- 1.2.4 2016年5月25日。
- 1.2.3 2016年1月14日。
- 1.2.2 2016年1月11日。
- 1.1.0 2015年11月27日。
- 1.0.1 2015年11月26日。
- 1.0.0 2015年11月17日。
有关版本变更的详细信息,请参阅changelog.txt文件。
系统要求
- PHP 5.6或更高版本
- cURL模块已启用(至少v7.18.1)
- SSL已启用(使用至少0.9.8f版本的OpenSSL的系统)
安装
将barion库的内容复制到所需的文件夹。确保在运行PHP脚本时可以访问该路径。
基本用法
在您的PHP脚本中包含BarionClient类
require_once 'library/BarionClient.php';
然后实例化一个Barion客户端。为此,您必须提供三个参数。
首先,注册在Barion的在线商店的秘密密钥(称为POSKey)
$myPosKey = "9c165cfc-cbd1-452f-8307-21a3a9cee664";
API版本号(默认为2)
$apiVersion = 2;
连接到的环境。这可以是测试系统或生产环境。
// Test environment $environment = BarionEnvironment::Test; // Production environment $environment = BarionEnvironment::Prod;
有了这些参数,您就可以创建一个BarionClient
类的实例
$BC = new BarionClient($myPosKey, $apiVersion, $environment);
如果您遇到SSL连接问题,可以将第四个参数设置为true:$useBundledRootCerts
这将使用捆绑的根证书列表而不是服务器提供的证书。
基本流程
使用库管理支付过程包括两个步骤
1. 开始支付
1.1. 创建请求对象
要开始在线支付,您必须创建一个或多个PaymentTransaction
对象,向其中添加交易Items
,然后将这些交易组合在一个Payment
对象中。
首先,创建一个ItemModel
$item = new ItemModel(); $item->Name = "TestItem"; $item->Description = "A test product"; $item->Quantity = 1; $item->Unit = "piece"; $item->UnitPrice = 1000; $item->ItemTotal = 1000; $item->SKU = "ITEM-01";
然后创建一个PaymentTransactionModel
并将上面提到的Item
添加到其中
$trans = new PaymentTransactionModel(); $trans->POSTransactionId = "TRANS-01"; $trans->Payee = "webshop@example.com"; $trans->Total = 1000; $trans->Currency = Currency::HUF; $trans->Comment = "Test transaction containing the product"; $trans->AddItem($item);
最后,创建一个PreparePaymentRequestModel
并将上面提到的PaymentTransactionModel
添加到其中
$ppr = new PreparePaymentRequestModel(); $ppr->GuestCheckout = true; $ppr->PaymentType = PaymentType::Immediate; $ppr->FundingSources = array(FundingSourceType::All); $ppr->PaymentRequestId = "PAYMENT-01"; $ppr->PayerHint = "user@example.com"; $ppr->Locale = UILocale::EN; $ppr->OrderNumber = "ORDER-0001"; $ppr->Currency = Currency::HUF; $ppr->RedirectUrl = "http://webshop.example.com/afterpayment"; $ppr->CallbackUrl = "http://webshop.example.com/processpayment"; $ppr->AddTransaction($trans);
注意:用于身份验证的秘密POSKey不是请求对象的一部分。Barion客户端类会自动将此值注入到发送给Barion API的每个请求中。
1.2. 调用Barion API
现在您可以使用您刚刚创建的请求模型调用Barion客户端的PreparePayment
方法
$myPayment = $BC->PreparePayment($ppr);
Barion API 现在准备一个可以被任何人支付的支付实体。
变量 $myPayment 保存从 Barion API 接收到的响应,它是一个 PreparePaymentResponseModel 对象的实例。
1.3. 将用户重定向到 Barion 智能网关
您可以使用响应中的 PaymentId 值将用户重定向到 Barion 智能网关。您必须在 Id 查询字符串参数中提供此标识符。完整的重定向 URL 看起来像这样
https://secure.barion.com/Pay?id=<your_payment_id>
用户现在可以在 Barion 智能网关完成支付。
2. 获取有关支付的信息
在这个例子中,我们将获取我们刚刚创建的支付的详细信息。
2.1. 创建请求对象
要请求有关支付的信息,您只需要一个参数:支付标识符。这是我们在之前用于重定向用户的 PaymentId。
64157032-d3dc-4296-aeda-fd4b0994c64e
2.2. 调用 Barion API
要请求支付详情,我们使用上面的标识符调用 Barion 客户端类的 GetPaymentState 方法
$paymentDetails = $BC->GetPaymentState("64157032-d3dc-4296-aeda-fd4b0994c64e");
根据响应中接收到的支付状态和参数,商店现在可以决定支付是否成功。
基本故障排除
以下是一些您在联系我们的支持之前可能想要检查的常见错误
1. 当发送请求时,我收到 "用户身份验证失败" 错误
- 检查您是否向正确的环境发送了正确的 POSkey,例如,如果您想在测试环境中调用 API,请使用您在测试网站上注册的商店的 POSkey。
- 检查发送的数据是否实际上是有效的 JSON 字符串,没有任何特殊字符、分隔符、换行符或无效编码。
2. 在测试环境中,我收到 "商店已关闭" 错误消息
- 检查在登录到 Barion 测试网站后您的商店是否已开放。请注意,您必须填写商店的每项数据,然后将其发送以供审批。在此之后,审批将自动完成,您的商店将处于开放状态。这仅适用于测试环境。
更多示例
要查看有关 Barion 库使用方法的更多示例,请参阅存储库中的 docs 和 examples 文件夹。
© 2017 Barion Payment Inc.