clickpaysa/laravel_package

官方Laravel包,用于实现与Laravel应用的ClickPay集成

安装: 884

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 0

分支: 3

开放问题: 5

类型:composer-package

1.4.0 2023-08-21 11:26 UTC

This package is auto-updated.

Last update: 2024-09-05 14:08:56 UTC


README

Laravel ClickPay

描述

此包提供与ClickPay支付网关的集成。

本文件内容

  • 简介
  • 要求
  • 安装
  • 配置
  • 用法

简介

此包从版本5.8 - 8.x开始,将ClickPay在线支付集成到Laravel框架中。

要求

此包无需外部依赖。

安装

  • composer require clickpaysa/laravel_package

配置

  • composer dump-autoload

  • 前往 config/app.php 并在 providers 数组中添加

      Clickpaysa\Laravel_package\PaypageServiceProvider::class,
    
  • 创建包配置文件

      php artisan vendor:publish --tag=clickpay
    
  • 前往 config/logging.php 并在 channels 数组中添加

    'ClickPay' => [
    'driver' => 'single',
    'path' => storage_path('logs/clickpay.log'),
    'level' => 'info',
    ],
    
  • config/clickpay.php 中添加您的商户信息。

重要提示:您可以在环境文件中使用与 config/clickpay.php 文件中提到的相同键名的商户信息。如果不存在相应的环境变量,将返回此值。

用法

  • 创建支付页面

      use Clickpaysa\Laravel_package\Facades\paypage;
    
      $pay= paypage::sendPaymentCode('all')
             ->sendTransaction('sale')
              ->sendCart(10,1000,'test')
             ->sendCustomerDetails('Name', 'email@email.com', '0501111111', 'test', 'Riyadh', 'Riyadh', 'SA', '1234','10.0.0.10')
             ->sendShippingDetails('Name', 'email@email.com', '0501111111', 'test', 'Riyadh', 'Riyadh', 'SA', '1234','10.0.0.10')
             ->sendURLs('return_url', 'callback_url')
             ->sendLanguage('en')
             ->create_pay_page();
      return $pay;
    
  • 如果您想将送货地址与账单地址相同,可以使用

      ->sendShippingDetails('same as billing')
    
  • 如果您想隐藏送货地址,可以使用

      ->sendHideShipping(true);
    
  • 如果您想使用iframe选项而不是重定向,可以使用

      ->sendFramed(true);
    
  • 如果您想传递支付方式,可以使用

      ::sendPaymentCode("['creditcard','mada']")
    
  • 如果您想传递令牌化选项,可以使用

      ->sendTokinse(true)
    
  • 如果您想通过令牌进行支付,可以使用

      ->sendTransaction('transaction_type','recurring')
      ->sendToken('token returned from the first payment page created with Tokenization option','transRef returned to you in the same first payment page')
    
  • 如果您想使用用户定义的进行支付,可以使用

      ->sendUserDefined(["udf1"=>"UDF1 Test", "udf2"=>"UDF2 Test", "udf3"=>"UDF3 Test"])
    
  • 退款(您可以使用此函数进行全额退款和部分退款)

      $refund = Paypage::refund('tran_ref','order_id','amount','refund_reason');
      return $refund;
    
  • 认证

      pay= Paypage::sendPaymentCode('all')
             ->sendTransaction('Auth')
              ->sendCart(10,1000,'test')
             ->sendCustomerDetails('Name', 'email@email.com', '0501111111', 'test', 'Riyadh', 'Riyadh', 'SA', '1234','10.0.0.10')
             ->sendShippingDetails('Name', 'email@email.com', '0501111111', 'test', 'Riyadh', 'Riyadh', 'SA', '1234','10.0.0.10')
             ->sendURLs('return_url', 'callback_url')
             ->sendLanguage('en')
             ->create_pay_page();
      return $pay;
    
  • 捕获(tran_ref 是您需要捕获的 Auth 交易的 tran_ref。

    您可以使用此函数进行捕获和部分捕获。)

       $capture = Paypage::capture('tran_ref','order_id','amount','capture description'); 
       return $capture;
    
  • 取消(tran_ref 是您需要取消的 Auth 交易的 tran_ref。

    您可以使用此函数进行取消和部分取消。)

      $void = Paypage::void('tran_ref','order_id','amount','void description');
      return $void
    
  • 交易详情

      $transaction = Paypage::queryTransaction('tran_ref');
      return $transaction;
    
  • 如果您遇到任何错误,您将在以下位置找到它: storage/logs/clickpay.log

支付结果通知

ClickPay支付网关提供了一种在交易处理完成后通知您的系统支付结果的方法,以便您的系统可以更新相应的购物车。

要使用此功能,请执行以下操作

1- 定义路由(可选)

Laravel ClickPay包自带一个用于接收IPN请求的默认路由。路由URI为 /paymentIPN,如果您不喜欢这个URI,请忽略它并定义自己的。有关提示,请查看 routes/routes.php

2- 实现接收通知的方式

要接收通知,请执行以下操作之一

  • 在创建支付页面时,将此路由作为Callback URL传递给 sendURLs 方法,该URL将接收带有支付结果的HTTP Post请求。有关回调的更多信息,请参阅: 商户仪表板 > 开发者 > 交易API

  • 第二种方式是配置商户仪表板中的IPN通知。有关如何配置IPN请求及其不同格式的详细信息,请参阅: 商户仪表板 > 开发者 > 服务类型

3- 配置回调方法

现在,您需要使用将抓取支付详情并执行您自定义逻辑(在数据库中更新购物车、通知客户等)的类\方法配置插件。

  • 在您的网站 config/clickpay.php 文件中,添加以下内容

      'callback' => env('clickpay_ipn_callback', namespace\your_class::class ),
    
  • 在您的类中添加新方法,其名称必须为:updateCartByIPN

      updateCartByIPN( $requestData){
          $cartId= $requestData->getCartId();
          $status= $requestData->getStatus();
          //your logic .. updating cart in DB, notifying the customer ...etc
      }
    

您还可以获取交易参考号。要查看可用的属性列表,请检查:Clickpaysa\Laravel__clickpay\IpnRequest 类。