robustastudio/payfort-start-php

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

Payfort Start 让您在中东地区接受在线支付变得轻而易举

v1.0 2018-03-07 17:44 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:55:42 UTC


README

Build Status

Start PHP

Start 让您在中东地区接受支付变得非常简单。在 https://start.payfort.com 注册一个账户。

入门指南

在您的 PHP 项目中使用 Start 简单易行。

通过 Composer 安装

如果您使用 Composer(实际上,现在谁不用呢?),您只需运行

php composer.phar require robustastudio/payfort-start-php

.. 或者将一行添加到您的 composer.json 文件中

{
    "require": {
        "robustastudio/payfort-start-php": "*"
    }
}

现在,运行 php composer.phar install 将直接将库拉到您本地的 vendor 文件夹。

手动安装

从 GitHub 仓库获取最新发布版本的源代码:https://github.com/RobustaStudio/payfort-start-php/releases/latest,并将其复制到您的项目中。

在您的 PHP 文件中添加以下内容

<?php

require_once("path-to-start-php/Start.php");

?>

注意(Windows):在开始使用 start-php 进行开发之前,请检查您的 php_curl 是否可以与我们的 ssl 证书(TLSv1.2)一起工作。您可以通过运行单元测试来完成此操作。如果看到 "SSL 连接错误",则表示您需要安装一个新的 php 版本(至少 5.5.19)。

注意:如果您在共享主机上运行,则可能需要为 php 命令设置 allow_url_fopen 标志。例如,对于安装命令,这可能看起来像 php -d allow_url_fopen=On composer.phar install。这里的 -d 覆盖了 php.ini 设置,其中 allow_url_fopen 通常设置为 Off

使用 Start

如果您还没有账户,您需要创建一个 Start 账户(请快速在 start.payfort.com 注册一个,然后立即回来 .. 我们会等你的)。

有账户了吗?太好了 .. 让我们开始吧。

1. 初始化 Start

要开始,您需要使用您的密钥 API 初始化 Start。下面是这样做的方式(别担心 .. 我们使用的是测试密钥,所以没有真正的钱会交易)

require_once('vendor/autoload.php'); # At the top of your PHP file

# Initialize Start object
Start::setApiKey('test_sec_k_25dd497d7e657bb761ad6');

就是这样!但是,您可能想对 Start 对象做些什么 —— 如果它没有事情做,它会变得非常无聊。

我们来运行一笔交易,好吗。

2. 通过 Start 处理交易

现在,是时候进行有趣的部分了。以下是您处理 Start 交易所需的所有代码

Start_Charge::create(array(
  "amount" => 10500, // AED 105.00
  "currency" => "aed",
  "card" => array(
    "number" => "4242424242424242",
    "exp_month" => 11,
    "exp_year" => 2016,
    "cvc" => "123"
  ),
  "description" => "Charge for test@example.com"
));

这笔交易应该会成功,因为我们使用了 4242 4242 4242 4242 测试信用卡。有关测试卡片的完整列表及其预期输出,您可以查看此链接 这里

您如何知道它成功了?嗯,如果没有抛出异常,那么您就没有问题。

3. 处理错误

交易过程中可能发生的任何错误都会以异常的形式抛出。以下是如何使用 Start 处理错误的示例

try {
  // Use Start's bindings...
} catch(Start_Error_Banking $e) {
  // Since it's a decline, Start_Error_Banking will be caught
  print('Status is:' . $e->getHttpStatus() . "\n");
  print('Code is:' . $e->getErrorCode() . "\n");
  print('Message is:' . $e->getMessage() . "\n");

} catch (Start_Error_Request $e) {
  // Invalid parameters were supplied to Start's API

} catch (Start_Error_Authentication $e) {
  // There's a problem with that API key you provided

} catch (Start_Error $e) {
  // Display a very generic error to the user, and maybe send
  // yourself an email

} catch (Exception $e) {
  // Something else happened, completely unrelated to Start
  
}

测试 Start

最好运行单元测试以确保一切正常。这也很简单,只需从您项目文件夹的根目录运行以下命令

php vendor/bin/phpunit tests --bootstrap vendor/autoload.php

注意:您还需要拉取开发依赖,使用composer update --dev来运行测试套件。

贡献

请阅读我们的贡献指南以获取详细信息

版权所有 (c) Payfort。