remotemerge/esewa-php-sdk

PHP中的eSewa支付网关集成。

3.1.0 2024-08-24 12:15 UTC

This package is auto-updated.

Last update: 2024-09-24 12:28:51 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扩展和cURL编译了TLS后端(例如,NSS或OpenSSL)的版本。

安装

安装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分支提交拉取请求。

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