etern8ty / beanstream
Beanstream PHP API
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-29 05:56:31 UTC
README
Composer 兼容的 Bambora NA 支付 API 的 PHP 封装。
安装
推荐使用 Composer 安装此库。
- 将以下 json 添加到您的 composer.json 文件中
{
"require": {
"etern8ty/beanstream": "dev-master"
}
}
- 接下来,从命令行运行以下命令
composer install
- 最后,将此行添加到使用 SDK 的 PHP 文件中
require 'vendor/autoload.php';
异常处理
如果服务器返回意外的响应或错误,PHP API 将抛出 \Beanstream\Exception。
正的错误代码对应于 Beanstream API 错误,请参阅 Bambora NA 支付 API
负的错误代码对应于 cURL 错误(原始 cURL 错误代码为正,在 \Beanstream\Exception 中这些只是反转)。错误代码为零的异常是 PHP API 特定的,例如 curl 扩展是必需的 或 意外的响应格式。
通常,任何不成功的请求,例如数据不足或交易被拒绝,都会导致 \Beanstream\Exception,因此建议使用 try..catch 来拦截和处理它们,请参阅下面的示例。
您的第一次集成
<?php require 'vendor/autoload.php'; $merchant_id = ''; //INSERT MERCHANT ID (must be a 9 digit string) $api_key = ''; //INSERT API ACCESS PASSCODE $api_version = 'v1'; //default $platform = 'api'; //default //Create Beanstream Gateway $beanstream = new \Beanstream\Gateway($merchant_id, $api_key, $platform, $api_version); //Example Card Payment Data $payment_data = array( 'order_number' => 'a1b2c3', 'amount' => 1.00, 'payment_method' => 'card', 'card' => array( 'name' => 'Mr. Card Testerson', 'number' => '4030000010001234', 'expiry_month' => '07', 'expiry_year' => '22', 'cvd' => '123' ) ); $complete = TRUE; //set to FALSE for PA //Try to submit a Card Payment try { $result = $beanstream->payments()->makeCardPayment($payment_data, $complete); /* * Handle successful transaction, payment method returns * transaction details as result, so $result contains that data * in the form of associative array. */ } catch (\Beanstream\Exception $e) { /* * Handle transaction error, $e->code can be checked for a * specific error, e.g. 211 corresponds to transaction being * DECLINED, 314 - to missing or invalid payment information * etc. */ }
请参阅 examples.php 以获取更多示例。
提示
身份验证
Beanstream 为支付、配置文件和报告 API 请求定义了单独的 API 访问密码。您可以为所有这些使用相同的值,并创建一个 \Beanstream\Gateway 的单例实例。您还可以为每种请求类型初始化单独的 \Beanstream\Gateway 实例。API 访问密码通过 Beanstream 控制面板进行配置(请参阅 管理 -> 账户设置 -> 订单设置 以获取支付和搜索密码,配置 -> 支付配置文件配置 以获取配置文件密码)。
账单地址省份
Beanstream 要求与 账单 数据一起提交的 省份 字段为两位字母代码。只有当指定的 国家 为 US 或 CA 时才要求提供,对于其他国家代码,即使相应的国家有州或省份,也应将其设置为 --(两个破折号)。
向后兼容性
分配给默认 $platform 值是 'api',它将您的请求发送到端点 'api.na.bambora.com'。为了确保向后兼容性,您可以分配 $platform = 'www',这将使您的请求发送到旧端点 'www.beanstream.com/api'。
确保 TLS 1.2-Only 兼容性
如果您想测试与仅 TLS 1.2 的 LIVE 环境的兼容性,请将 $platform = 'tls12-api' 分配给 'api' 而不是 'api';这将使您的请求指向端点 'tls12-api.na.bambora.com'。请注意,此端点仅提供有限时间,且仅用于集成兼容性测试,不适用于任何类型的负载测试。更多详细信息可以在 Bambora 北美知识库 中找到。