remotemerge / esewa-php-sdk
PHP中的eSewa支付网关集成。
3.1.0
2024-08-24 12:15 UTC
Requires
- php: >=8.1
- ext-curl: *
- ext-simplexml: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.62.0
- phpunit/phpunit: ^10.5.30
- rector/rector: ^1.2.4
README
PHP的eSewa SDK 由 remotemerge 和社区开发维护,简化了将eSewa支付服务集成到PHP代码中的过程。更多详细信息,请参阅 eSewa 文档 网站。
入门指南
- 注册eSewa – 在开始之前,您需要注册并从 eSewa 获取您的凭证。
- 最低要求 – 要运行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)
pid
产品或物品或票等的唯一ID。amt
产品或物品或票等的金额。txAmt
产品或物品或票等上的税额。如果不适用税/VAT,则传递0
。psc
服务费用(如果适用);默认为0
。pdc
配送费用(如果适用);默认为0
。
支付OTP
在生产模式下使用eSewa支付网关时,将OTP(一次性密码)代码发送到客户的手机号码以验证交易。在开发模式下,OTP代码是一个用于测试目的的固定六位数,123456
。
验证支付
验证过程确定可能存在欺诈性交易,并将其与交易金额和其他参数等数据进行比较。
$status = $esewa->verifyPayment('R101', 'P101W201', 245); if ($status) { // Verification successful. }
该方法接受三个参数。
verifyPayment(string $refId, string $oid, float $tAmt)
refId
eSewa生成的唯一支付参考代码。oid
用于支付请求的产品ID。tAmt
总支付金额(包括税/VAT和其他费用。)
注意: 您可以从成功响应URL参数中提取 refId
。
贡献
开源社区的贡献受到高度重视和赞赏。为确保过程顺利高效,提交代码时请遵循以下指南。
- 确保代码遵循PER 编码风格 2.0标准。
- 所有提交的代码必须通过相关测试。
- 恰当的文档和整洁的代码实践是必要的。
- 请向
main
分支提交拉取请求。
感谢您的支持和贡献。期待审阅您的代码。