richyy/barion-web-php

该软件包的最新版本(v1.4.7)没有可用的许可证信息。

Barion Smart Gateway API 集成的 PHP 库

v1.4.7 2022-05-07 13:17 UTC

This package is auto-updated.

Last update: 2024-09-07 18:11:16 UTC


README

BarionPHP 是一个紧凑的 PHP 库,用于通过 Barion Smart Gateway 管理在线电子货币和卡片支付。它允许您用几行代码即可接受信用卡和电子货币支付。

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. 创建请求对象

要开始在线支付,您必须创建一个或多个 Payment Transaction 对象,将交易 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");

根据响应中收到的支付状态和参数,商店现在可以决定支付是否成功。

基本故障排除

在联系我们的支持之前,您可能希望检查以下一些常见的错误

16. 在发送请求时我收到“用户认证失败”错误

  • 检查您是否向正确的环境发送了正确的POSkey,例如,如果您想在TEST环境中调用API,请使用在TEST网站上注册的商店的POSkey。
  • 检查发送的数据是否确实是一个有效的JSON字符串,不包含任何特殊字符、分隔符、换行符或无效编码。

19. 在TEST环境中我收到“商店已关闭”错误消息

  • 登录Barion测试网站后,检查您的商店是否处于开启状态。请注意,您必须填写商店的每一项数据,然后将其发送供审批。在此之后,审批将自动完成,您的商店将处于开启状态。这仅适用于TEST环境。

更多示例

要查看更多关于Barion库使用方法的示例,请参阅仓库中的docsexamples文件夹。

© 2017 Barion Payment Inc.