raffmartinez/beanstream

Beanstream PHP API

v0.0.4 2023-08-17 18:24 UTC

This package is auto-updated.

Last update: 2024-09-17 20:50:39 UTC


README

Bambora NA Payment API 准备的 Composer ready PHP 封装器。

安装

推荐使用 Composer 安装库。

  1. 将此 json 添加到您的 composer.json 文件中
{
    "require": {
        "beanstream/beanstream": "dev-master"
    }
}
  1. 接下来,从命令行运行此操作
composer install
  1. 最后,将此行添加到将使用 SDK 的 php 文件中
require 'vendor/autoload.php';

处理异常

如果服务器返回意外响应或错误,PHP API 将抛出 \Beanstream\Exception

正的错误代码对应于 Beanstream API 错误,请参阅 Bambora NA Payment 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 要求与账单数据一起提交的 province 字段为两位字母代码。仅在指定的 countryUSCA 时才要求它,对于其他国家代码,即使相应的国家有州或省份,也将其设置为 --(两个短横线)。

向后兼容性

默认的 $platform 值是 'api',它将您的请求发送到端点 'api.na.bambora.com'。为了确保向后兼容性,您可以将 $platform = 'www' 分配,这将使您的请求发送到旧端点 'www.beanstream.com/api'

确保 TLS 1.2-Only 兼容性

如果您想测试与仅 TLS 1.2 的 LIVE 环境的兼容性,请将 $platform = 'tls12-api' 分配给 'api';这将使您的请求指向端点 'tls12-api.na.bambora.com'。请注意,此端点是有限时间内提供的,仅用于集成兼容性测试,不适用于任何类型的负载测试。更多信息可以在 Bambora 北美知识库 中找到。