blessdarah/php-campay

PHP 对 campay momo 集成的包装包

dev-main 2024-07-17 20:52 UTC

This package is auto-updated.

Last update: 2024-09-17 21:11:23 UTC


README

这是一个 campay API 的 PHP 包装器,它使 momo 与 PHP 和 Campay 的无缝集成成为可能。

要求

此包从 php@7.4 版本开始支持,并向上。请确保您已安装最新版本的 PHP。

如何安装此包

要安装此包,请运行

composer require blessdarah/php-campay:dev-main

当包稳定时,请使用以下命令。

composer require blessdarah/php-campay

用法

此包会自动管理所有与 campay 交易相关的令牌。

配置

此包使用 dotenv 包,因此如果您不使用像 laravel 这样自动加载环境变量的框架,您可以按照以下方式设置:

  1. 如果您还没有,请在项目的根目录下创建一个 .env 文件
  2. 从您的 campay 控制台复制应用程序的 usernamepassword,并按如下方式添加它们:
CAMPAY_USERNAME="YOUR CAMPAY APPLICATION USERNAME"
CAMPAY_PASSWORD="YOUR CAMPAY APPLICATION PASSWORD"
  1. 在您的 index.php 文件或根应用程序入口点中,您必须加载 dotenv
require_once "vendor/autoload.php";
use BlessDarah\PhpCampay\Campay;
use Dotenv\Dotenv;

$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();

如果您不使用 composer,可以忽略上述步骤,并使用 PHP 全局 $_ENV 来设置您的 .env 变量,如下设置您的 campay 配置:

$_ENV['CAMPAY_USERNAME']="YOUR CAMPAY APPLICATION USERNAME"
$_ENV['CAMPAY_PASSWORD']="YOUR CAMPAY APPLICATION PASSWORD"

配置 campay 基础 URL

$_ENV['CAMPAY_BASE_URL']="https://demo.campay.net/api/" # for local testing or
$_ENV['CAMPAY_BASE_URL']="https://campay.net/api/" # for production

注意:您应该确保不要将配置变量暴露在网上,因为这将是您的应用程序的一个潜在安全问题

收集付款

use BlessDarah\PhpCampay\Campay;

$campay = new Campay();

$data = array(
    "amount" => 3,
    "currency" => "XAF",
    "from" => "237******",
    "description" => "test payment"
);
$res = $campay->collect($data);
// handle your response data from here
echo $res;

提现资金

对于提现,我们使用 withdraw 函数

use BlessDarah\PhpCampay\Campay;

$campay = new Campay();

$data = array(
    "amount" => 3,
    "currency" => "XAF",
    "to" => "237******",
    "description" => "test payment"
);
$res = $campay->widthdraw($data);
echo $res;

上述响应包含交易的信息和 reference,这将使您能够使用 getTransactionStatus 函数检查其状态

检查交易状态

在使用 collectwithdraw 函数后检查交易状态时,您可以通过传递结果引用键来检查您的交易状态

use BlessDarah\PhpCampay\Campay;

$campay = new Campay();

/*
* Suppose you have carried out a collection request from user then you can
* collection logic here
* /
$ref = $res->reference; // e.g: b1d44bc7-648d-451b-a3ef-c5807738ec82

$transaction_feedback = $campay->getTransactionStatus($ref) /* your reference code */

if($transaction_feedback->status == 'SUCCESSFUL')
{
    /* success logic here */
}

if($transaction_feedback->status == 'PENDING')
{
    /* Pending logic here */
}

if($transaction_feedback->status == 'FAILED')
{
    /* Erro logic here */
}

获取您的应用程序余额

use BlessDarah\PhpCampay\Campay;

$campay = new Campay();
$res = $campay->getAppBalance();

// handle your response data from here
echo $res;

以间隔获取交易历史

默认情况下,您的交易历史将返回您应用程序过去 7 天 或一周的所有交易

use BlessDarah\PhpCampay\Campay;

$campay = new Campay();
$res = $campay->transactionHistory();

// handle your response data from here
echo $res;

如果您想具体指定日期,可以像这样传递您的 startend 日期:

$start_date = new Date("2022-06-13");
$end_date = new Date("2022-08-13");

$res = $campay->transactionHistory($start_date, $end_date);

生成付款链接

根据 campay 文档,您可以为付款生成一个付款链接或 URL,可以用于付款。以下是操作方法:

use BlessDarah\PhpCampay\Campay;

$campay = new Campay();

$params = [
    "amount" => 4,
    "currency" => "XAF",
    "description" => "Sample description",
    "first_name" =>  "John",
    "last_name" =>  "Doe",
    "email" => "example@mail.com",
    "external_reference" =>  "",
    "redirect_url" =>  "https://example.com",
    "failure_redirect_url" => "https://example.com",
    "payment_options" => "MOMO" // or CARD for credit card payments
];
$res = $campay->generatePaymentUrl($params);

// handle your response data from here
echo $res;