leafwrap/payment-deals

这是一个基于Laravel的在线支付网关解决方案,包含PayPal、Stripe、Razorpay、bKash等流行的支付网关。轻松将安全且多样化的支付选项集成到您的Web应用程序中。

1.0.8 2024-03-10 11:17 UTC

This package is auto-updated.

Last update: 2024-09-10 12:18:51 UTC


README

支付交易库是一个强大且灵活的Laravel包,旨在简化并增强在线支付处理。无论是企业主、开发者还是企业家,此库都能为您提供一套全面的工具集,以无缝地将流行的支付网关集成到您的Web应用程序中。

关键特性

网关多样性:支付交易支持多种流行的支付网关,包括PayPal、Stripe、Razorpay、bKash等。这种灵活性使您能够满足全球受众的需求,适应各种支付偏好。

Laravel集成:此库专门为Laravel构建,可以轻松集成到基于Laravel的项目中。它利用Laravel的优雅和稳健性,提供可靠且一致的支付体验。

简单配置:支付交易通过直观的配置系统简化了设置过程。只需几行代码,您就可以开始通过所选网关接受支付。

安全:安全是首要任务,支付交易采用了最新的安全标准来保护敏感的客户数据。它确保PCI合规性并保护您的交易。

详尽的文档:此库附带全面的文档和示例,使所有级别的开发者都能轻松入门并在他们的应用程序中有效实现支付网关。

定制:通过定制支付表单和用户交互,将支付体验与您的品牌相匹配。支付交易提供了设计和用户体验定制的灵活性。

错误处理:强大的错误处理机制确保您可以轻松排查和解决问题,提高支付处理的可靠性。

持续更新:支付交易库得到积极维护,这意味着您将收到更新、错误修复和支持,以保持您的支付系统平稳运行。

要求

您应该确保您的Web服务器具有以下最低PHP版本和扩展

  • PHP >= 8.0

安装

首先,使用Composer包管理器安装PaymentDeal包

composer require leafwrap/payment-deals

数据库迁移

PaymentDeal服务提供程序注册了自己的数据库迁移目录,因此请记住在安装包后迁移您的数据库。

php artisan migrate

配置

网关凭据或API密钥

支付交易提供了支付网关配置API,用于在数据库中存储凭据。请点击以下链接查看API文档。

https://documenter.getpostman.com/view/7667667/2s9YBz3b3S

用法

  • 创建支付请求
use Leafwrap\PaymentDeals\Facades\PaymentDeal;

Route::post('payment', function () {
    // Fetch your pricing plan
    $plan = PricingPlan::where(['id' => 1])->first()->toArray();

    /*
      Initialize required value to create a payment request
      Parameters:
        1. Pricing Package // an array
        2. Amount // float or int
        3. User ID // string
        4. Gateway Name // string (ex: paypal, stripe, razorpay, bkash, paystack)
        5. Currency // string (ex: USD, INR, BDT)
        6. Exchange Amount // float (if currency is not usd)
    */

    PaymentDeal::init($plan, $amount, $userId, $gateway, $currency, $exchangeAmount);

    // Pay provides you to request a payment
    PaymentDeal::pay();

    // Feedback provides you payment url link & payment response
    return PaymentDeal::feedback();
});
  • 查询您的支付(可选)
use Leafwrap\PaymentDeals\Facades\PaymentDeal;

Route::post('payment-query', function () {
    $transactionId = 'TRANS-XXXXXXXXXXXXX'

    // Query for payment status
    PaymentDeal::query($transactionId);

    // Feedback provides you payment response
    return PaymentDeal::feedback();
});
  • 分配到您的计划(必需)
use Leafwrap\PaymentDeals\Models\PaymentTransaction;

Route::post('/api/v1/assign-plan', function () {
    $transactionId = request()->input('transaction_id');

    if($payment = PaymentTransaction::where(['transaction_id' => $transactionId])->first()){
        // PaymentTransaction have some data attribute
        // id, transaction_id, user_id, gateway, amount, plan_data, request_payload, response_payload, status

        if($payment->status === 'completed'){
            // Assign code (your business logic)
        }
    }
});