mabiola/paystack-php-lib

为https://paystack.co提供的PHP库

1.0.1 2016-08-26 23:36 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:42:11 UTC


README

Paystack的PHP库。

此库不再维护。请使用官方库。

Build Status Coverage Status

需求

安装

通过Composer

将以下内容添加到您的composer.json文件中,并运行composer install

"mabiola/paystack-php-lib" : "~1.0"

然后使用composer的自动加载。

require_once __DIR__ . '/vendor/autoload.php';

注意:如果您使用的是PHP框架,例如Laravel,则无需将composer自动加载添加到您的文件中,因为已经自动完成了。(在bootstrap/autoload中查看,bootstrap/app.php用于Lumen)。

其他安装方法

没有其他安装方法!请使用composer!

为什么?

  • 这是正确使用PHP的方法!
  • 这是正确的事情。
  • 如果您仍然需要说服,这篇文章可能有所帮助。

真的,请...使用composer。谢谢。

配置

将以下键添加到您的.env文件中。

#PAYSTACK LIB MODE [test | live]
PAYSTACK_MODE = test
#YOUR PAYSTACK KEYS
PAYSTACK_LIVE_PUBLIC_KEY = my_paystack_live_public_keys
PAYSTACK_LIVE_SECRET_KEY = my_paystack_live_secret_key
PAYSTACK_TEST_PUBLIC_KEY = my_paystack_test_public_key
PAYSTACK_TEST_SECRET_KEY = my_paystack_test_secret_key

将键替换为您的实际Paystack密钥 - 您可以在设置页面的开发者/API面板中找到这些密钥。使用PAYSTACK_MODE在Paystack的livetest模式之间切换。

就是这样!您已准备好接收付款!

用法

使用此库很简单,创建一个Paystack库对象,并使用此对象对Paystack执行操作。要创建Paystack库对象,执行;

$paystackLibObject = \MAbiola\Paystack\Paystack::make();

或者如果您希望提供确切的密钥(如果您没有使用.env文件);

$paystackLibObject = \MAbiola\Paystack\Paystack::make("my-paystack-private-key");

现在让我们来了解您刚才创建的对象可以执行的一些操作。

  1. 初始化一次性交易

    根据Paystack文档,要向客户收费,您需要创建一次性交易,这将获得一个授权URL,您可以将页面重定向到该URL,以便您的客户输入他们的卡信息并支付您的服务。要使用库执行此操作,传递要收费的金额、客户电子邮件和可选的计划(如果是创建订阅的交易,您可以在此处输入计划代码或计划对象 - 更多内容即将推出)。

     $getAuthorization = $paystackLibObject->startOneTimeTransaction('10000', 'me@me.com');
    

    您将期望一个包含要重定向以接受付款的授权URL authorization_url 和唯一自动生成的交易参考 reference 的数组。

  2. 验证交易

    要验证交易,只需调用函数即可;

     $verifyTransaction = $paystackLibObject->verifyTransaction('unique_transaction_ref');
    

    如果交易成功,此函数将返回包含交易详情的数组,否则$verifyTransaction将为false

  3. 向回头客收费

    现在,当您成功向客户收费时,将生成一个表示客户卡的授权键 - 您可以在验证交易时返回的数组中找到此键。因此,下次您想要向此客户收费时,可以使用此授权代码来收费。为此,只需调用函数即可;

     $chargeReturningCustomer = $paystackLibObject->chargeReturningTransaction('authorization_code', 'me@me.com', '10000');
    

    如果交易成功,此函数将返回包含交易详情的数组。

  4. 客户

    • 检索客户数据

      您可以通过将客户代码传递给getCustomer来检索客户详情,以获取客户对象。

        $customer = $paystackLibObject->getCustomer('customer_code');
      

      如果操作成功,您将获得一个客户对象,您可以调用 $newCustomer->toArray() 以获取详情数组,或者通过传递一个属性来调用 get 以获取,或者传递一个属性列表作为参数或属性数组。例如,$newCustomer->get(['first_name', 'customer_code', 'subscriptions', 'authorizations']);$newCustomer->get('subscriptions');

    • 创建客户

      要创建客户,将客户名、姓氏、电子邮件和电话传递给 createCustomer 方法,如下所示;

        $newCustomer = $paystackLibObject->createCustomer('first_name', 'last_name', 'email', 'phone');
      

      如果操作成功,将返回一个客户对象。

    • 更新客户数据

      您可以通过传递客户代码和包含要更新属性的键和更新值的数组来更新客户详情,到 updateCustomerData 方法,如下所示;

        $updatedCustomer = $paystackLibObject->updateCustomerData('customer_code',['last_name' => 'new_last_name']);
      

      如果操作成功,将返回客户对象。

    • 检索所有客户

      要检索所有客户,请在 PaystackLibObject 上调用 getCustomers 方法。预期返回客户对象数组。

        $myCustomers = $paystackLibObject->getCustomers();
      
  5. 计划

    • 检索计划详情

      您可以通过传递计划代码到 getPlan 来获取一个计划对象以检索计划的详情。

        $plan = $paystackLibObject->getPlan('plan_code');
      

      如果操作成功,您将获得一个计划对象,您可以通过调用 $plan->toArray() 来获取详情数组,或者通过传递一个属性来调用 get,或者传递一个属性列表作为参数或属性数组。例如,$plan->get(['name', 'plan_code', 'subscriptions', 'hosted_page_url']);$plan->get('subscriptions');

    • 创建新计划

      要创建计划,将计划名称、描述、金额(显然不在科博)和货币(NGN | USD)传递给 createPlan 方法,如下所示;

        $newPlan = $paystackLibObject->createPlan('Random_Plan_1000', 'Random 1000NGN Plan', '1000', 'NGN');
      

      如果操作成功,将返回一个计划对象。

    • 更新计划数据

      您可以通过传递计划代码和包含要更新属性的键和更新值的数组来更新计划详情,到 updatePlan 方法,如下所示;

        $updatedPlan = $paystackLibObject->updatePlan('plan_code', ['hosted_page_url' => 'http://somerandomu.rl', 'hosted_page' => true]);
      

      如果操作成功,将返回计划对象。

    • 检索所有计划

      要检索所有计划,请在 PaystackLibObject 上调用 getPlans 方法。预期返回计划对象数组。

        $myPlans = $paystackLibObject->getPlans();
      
  6. 其他交易操作

    • 获取交易详情 要获取交易的详情,将交易 ID 传递给 transactionDetails 函数。成功时预期返回交易对象或抛出异常。与客户和计划对象一样,您可以在其上执行 toArrayget 操作。此外,您可以调用 verify() 来验证交易。

        $transactionDetails = $paystackLibObject->transactionDetails('transaction_id');
      
    • 获取所有交易 要检索所有交易,请在 paystack 库对象上调用 allTranactions 函数。成功时返回交易对象数组或错误时抛出异常。

        $allMyTransactions = $paystackLibObject->allTransactions();
      
    • 交易总额 要获取成功的交易累积视图,使用 transactionTotals 函数。返回具有 total_volumetotal_transactionspending_transfers 作为键的数组。当然,出错时也会抛出异常。

        $totals = $paystackLibObject->transactionsTotals();
      
  7. 异常

    错误难免会发生,但不必担心,库包含描述性异常和获取错误详情的方法/函数。要获取抛出异常时的错误消息,请调用异常对象的 getErrors()。例如;

     try {
     	$paystackLibObject->getPlan('plan_code');
     } catch (PaystackNotFoundException $e) {
     	print_r($e->getErrors());
     }
    

    可能的异常;

    • PaystackInternalServerError
    • PaystackInvalidTransactionException:当无法生成唯一的交易引用时抛出。
    • PaystackNotFoundException:当找不到请求的对象/资源时抛出。
    • PaystackUnauthorizedException:当找不到授权密钥时抛出。
    • PaystackUnsupportedOperationException:当您尝试执行的操作不受 Paystack 支持时抛出。
    • PaystackValidationException: 当发生验证错误时抛出。您可以通过在异常对象上调用 getValidationErrors() 来查看验证错误。getValidationErrors() 返回一个包含验证失败的属性和原因的数组。

贡献

我非常欢迎您的贡献,克隆仓库并发送给我一个拉取请求。请记得编写测试。或者您也可以打开问题报告来报告错误。

此外,如果您喜欢这个库,请在仓库上点星。或者如果您有任何问题或者只是想给我发个消息,您可以在 twitter 上找到我

许可证

MIT。