dubems/laravel-amplify

此软件包的最新版本(1.0)没有提供许可证信息。

laravel 的 Amplify 支付库

1.0 2018-06-23 09:45 UTC

This package is not auto-updated.

Last update: 2024-09-23 19:19:28 UTC


README

Amplify 支付集成 Laravel 库

安装

需要 PHP 5.4+ 和 Composer

要获取 Laravel Amplify 的最新版本,请在以下要求中指定:

" composer require dubems/laravel-amplify"

然后,您需要运行 composer installcomposer update 来下载它并更新自动加载器。

一旦安装了 Laravel Amplify,您需要注册服务提供者。打开 config/app.php 并将以下内容添加到 providers 键。

  • Dubems\Amplify\AmplifyServiceProvider::class,

同时,注册 Facade 如下所示

'aliases' => [
    ...
    'Amplify' => Dubems\Amplify\Facades\Amplify::class,
    ...
]

配置

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Dubems\Amplify\AmplifyServiceProvider"

将名为 amplify.php 的配置文件(包含一些默认值)放置在您的 config 目录中

<?php

return [
   /**
    * Merchant ID gotten from your Amplify dashboard
    */

  'merchantId'=> getenv('AMPLIFY_MERCHANT_ID'),

    /**
     *  API Key from amplify dashboard
     */
    'apiKey' => getenv('AMPLIFY_API_KEY'),

    /**
     * Amplify payment Url
     */
    'paymentUrl' => getenv('AMPLIFY_PAYMENT_URL'),

    /**
     * Redirect Url after successful transaction
     */
    'redirectUrl' => getenv('AMPLIFY_REDIRECT_URL')

];

##一般支付流程

尽管有多种支付订单的方式,但大多数支付网关都要求您在结账过程中遵循以下流程:

###1. 客户被重定向到支付提供商的网站 客户完成结账流程并准备支付后,必须将客户重定向到支付提供商的网站。

通过提交包含一些隐藏字段的表单来实现重定向。表单必须提交到支付提供商的网站。隐藏字段至少指定了必须支付的金额和其他一些字段

###2. 客户在支付提供商的网站上支付 客户到达支付提供商的网站,并可以选择支付方式。支付订单所需的全部步骤都由支付提供商处理。

###3. 客户被重定向回网站 客户支付订单后,将被重定向回网站。在重定向请求到商店网站时,会返回一些值。

用法

打开您的 .env 文件,并添加您的公钥、密钥、商户电子邮件和支付 URL,如下所示

AMPLIFY_MERCHANT_ID=XXXXXXX
AMPLIFY_API_KEY=XXXXXX
AMPLIFY_PAYMENT_URL=https://api.amplifypay.com
AMPLIFY_REDIRECT_URL=https://xxxxx

设置路由和控制方法,如下所示

Route::post('/pay', 'PaymentController@redirectToGateway')->name('pay'); // Laravel 5.1.17 and above

Route::get('/payment/callback', 'PaymentController@handleGatewayCallback');
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Amplify;

class PaymentController extends Controller
{

    /**
     * Redirect the User to Amplify Payment Page
     * @return Url
     */
    public function redirectToGateway()
    {
           return Amplify::getAuthorizationUrl()->redirect();
    }

    /**
     * Get Amplify payment information
     * @return void
     */
     public function handleGatewayCallback()
      {
           $response = Amplify::handlePaymentCallback();
           dd($response);

        // Now you have the payment details,
        // you can store the authorization_code in your db to allow for recurrent subscriptions
        // you can then redirect or do whatever you want
     }
}

其他方法和示例用法可以在下面找到

    /** Create Subscription */
  public function createSubscription()
    {
        $data = ['planName' => 'Sliver members', 'frequency' => 'Weekly'];
        $response = Amplify::createSubscription($data);
        dd($response);
    }

    /** Delete a particular subscription */  */
    public function deleteSubscription()
    {
        $id = 'xyz';
        $response = Amplify::deleteSubscription($id);
        dd($response);
    }

    /** Update a particular subscription */
 public function updateSubscription()
    {
        $data = ['planName' => 'Gold members', 'frequency' => 'Weekly'];
        $planId = 'xyz';
        $response = Amplify::updateSubscription($planId, $data);
        dd($response);
    }

    /** Get a particular subscription */
public function fetchSubscription()
   {
       $id = 'id';
       $response = Amplify::fetchSubscription($id);
       dd($response);
   }

    /** Fetch all subscription */
public function fetchAllSubscription()
    {
        $allSub = Amplify::fetchAllSubscription();
        dd($allSub);
    }


示例表单看起来如下所示

<form method="POST" action="{{ route('pay') }}" accept-charset="UTF-8" class="form-horizontal" role="form">
        <div class="row" style="margin-bottom:40px;">
          <div class="col-md-8 col-md-offset-2">
            <p>
                <div>
                   A cup of coffee
                    ₦ 800
                </div>
            </p>
            <input type="hidden" name="email" value="nriagudubem@gmail.com"> {{-- required --}}
            <input type="hidden" name="description" value="XYZ">
            <input type="hidden" name="amount" value="800"> {{-- required in naira --}}
            <input type="hidden" name="name" value="Nriagu Dubem">
            <input type="hidden" name="planId" value="Your plan ID">
            {{ csrf_field() }} {{-- works only when using laravel 5.1, 5.2 --}}

             <input type="hidden" name="_token" value="{{ csrf_token() }}"> {{-- employ this in place of csrf_field only in laravel 5.0 --}}


            <p>
              <button class="btn btn-success btn-lg btn-block" type="submit" value="Pay Now!">
              <i class="fa fa-plus-circle fa-lg"></i> Pay Now!
              </button>
            </p>
          </div>
        </div>
</form>
PAN = 5060 9905 8000 0217 499
EXPYEAR = 20
EXPMONTH = 04
CVV = 111

If prompted for Amount Validation, Enter 1.10

待办事项

  • 添加全面测试

贡献

请随意fork此软件包,并通过提交拉取请求来贡献以增强功能。

如何感谢你?

为github仓库加星标,我很乐意看到关注!您还可以在Twitter或HackerNews上分享此存储库的链接?传播信息!

别忘了在 twitter上关注我

谢谢!Nriagu Chidubem。

许可证

MIT 许可证(MIT)。请参阅 许可证文件 以获取更多信息。