cixware/esewa-php-sdk

此包已被弃用且不再维护。作者建议使用 remotemerge/esewa-php-sdk 包。

PHP中的eSewa支付网关集成。

3.1.0 2024-08-24 12:15 UTC

This package is auto-updated.

Last update: 2024-08-24 12:16:09 UTC


README

X (formerly Twitter) Facebook PHP Version Build Downloads License

PHP eSewa SDKremotemerge 和社区开发和维护,简化了将 eSewa 支付服务集成到 PHP 代码中的过程。有关更多详细信息,请参阅 eSewa 文档 网站。

入门

  1. 注册eSewa – 在您开始之前,您需要从 eSewa 注册并获取您的凭据。
  2. 最低要求 – 运行 SDK,您的系统需要满足最低要求,包括具有 PHP >= 8.1。我们强烈建议使用编译了 cURL 扩展和带有 TLS 后端(例如,NSS 或 OpenSSL)的 cURL。

安装

安装 SDK – 使用 Composer 是安装 PHP eSewa SDK 的推荐方法。SDK 通过 Packagist 提供,位于 remotemerge/esewa-php-sdk 包下。

composer require remotemerge/esewa-php-sdk

获取帮助

使用 GitHub 的问题跟踪错误和功能请求,并优先解决它们。

  • 对于账户和支付相关的问题,请通过打电话或发电子邮件直接联系 eSewa
  • 如果发现错误,请 在 GitHub 上打开一个问题
  • 如果您需要将 eSewa 集成到您的应用程序中,请随时联系支持团队。

快速示例

创建 eSewa 客户端

// Init composer autoloader.
require dirname(__DIR__) . '/vendor/autoload.php';

use RemoteMerge\Esewa\Client;

// Set success and failure callback URLs.
$successUrl = 'https://example.com/success.php';
$failureUrl = 'https://example.com/failed.php';

// Initialize eSewa client for development.
$esewa = new Client([
    'merchant_code' => 'EPAYTEST',
    'success_url' => $successUrl,
    'failure_url' => $failureUrl,
]);

// Initialize eSewa client for production.
$esewa = new Client([
    'merchant_code' => 'b4e...e8c753...2c6e8b',
    'success_url' => $successUrl,
    'failure_url' => $failureUrl,
]);

这里的 b4e...e8c753...2c6e8b 是从 eSewa 获取的商家代码。

进行支付

当用户启动支付流程时,该包会将用户重定向到 eSewa 网站进行支付处理。如果支付成功,eSewa 系统会将用户重定向到您指定的成功 URL;如果支付失败,则重定向到失败 URL。

$esewa->payment('P101W201', 100, 15, 80, 50);

此方法接受五个参数。

payment(string $pid, float $amt, float $txAmt = 0, float $psc = 0, float $pdc = 0)
  1. pid 产品、项目或门票等的唯一 ID。
  2. amt 产品、项目或门票等的金额。
  3. txAmt 产品、项目或门票等的税额。如果税/VAT不适用,则传递 0
  4. psc 服务费(如果适用);默认为 0
  5. pdc 运费(如果适用);默认为 0

支付 OTP

在生产模式下使用 eSewa 支付网关时,将 OTP(一次性密码)代码发送到客户的手机号码以验证交易。在开发模式下,OTP 代码是用于测试目的的固定六位数 123456

验证支付

验证过程识别潜在的欺诈交易,并检查它们与交易金额和其他参数等数据。

$status = $esewa->verifyPayment('R101', 'P101W201', 245);
if ($status) {
    // Verification successful.
}

此方法接受三个参数。

verifyPayment(string $refId, string $oid, float $tAmt)
  1. refId eSewa 生成的唯一支付参考代码。
  2. oid 在支付请求中使用的产品 ID。
  3. tAmt 总支付金额(包括税/VAT和其他费用)。

注意:您可以从成功响应 URL 参数中提取 refId

贡献

开源社区的贡献受到高度重视和赞赏。为确保流程顺畅高效,提交代码时请遵循以下指南:

  • 确保代码符合PER编码风格2.0标准。
  • 所有提交的代码必须通过相关测试。
  • 良好的文档和清洁的代码实践是必不可少的。
  • 请向main分支提交拉取请求。

感谢您的支持和贡献。期待审阅您的代码。