rifkyekayama/faspay-laravel-5

此包的最新版本(v1.1)没有可用的许可信息。

为 Faspay 支付网关的 Laravel 包。

v1.1 2018-03-28 03:46 UTC

This package is not auto-updated.

Last update: 2024-09-15 04:57:46 UTC


README

如果您的项目需要使用 Faspay 作为支付网关,那么这个包就是为您准备的。这是一个用于与 Faspay 支付网关 API(目前仅支持 DEBIT API)通信的 Laravel 包。

安装

要开始使用 Faspay,请运行此命令或将包添加到您的 composer.json

composer require Rifkyekayama/faspay

配置

安装 Faspay 包后,在您的 config/app.php 文件中注册 Rifkyekayama\Faspay\FaspayServiceProvider。同时,将 FaspayPayment 门面添加到 app 配置文件中的 aliases 数组。

'Faspay' => Rifkyekayama\Faspay\Facades\Faspay::class,
'Payment' => Rifkyekayama\Faspay\Facades\Payment::class,

最后发布配置文件

php artisan vendor:publish --provider="Rifkyekayama\Faspay\FaspayServiceProvider"

并将 config/faspay.php 中的 merchant_idmerchant_nameuser_idpassword 替换为您自己的信息。

如何使用

设置完成后,您可以使用此 Faspay 包如下

// Customer class example. You can apply to any model you want.

use Rifkyekayama\Faspay\CustomerInterface;

class Customer implements CustomerInterface
{
  public function getFaspayCustomerNumber()
  {
    return 'customer-number';
  }

  public function getFaspayCustomerName()
  {
    return 'customer-name';
  }

  public function getFaspayCustomerEmail()
  {
    return 'customer-email';
  }
  
  public function getFaspayCustomerPhone()
  {
    return 'customer-phone';
  }

  public function getFaspayPreferredCurrency()
  {
    return 'customer-currency';
  }
}
// Item class example. You can apply to any model you want.

use Rifkyekayama\Faspay\Payable;

class Item implements Payable
{
  public function getPayableName()
  {
    return 'Product Name';
  }

  public function getPayablePrice()
  {
    return 300000;
  }
}
// An example how to use the API.

Route::get('/', function () {

  $customer = new Customer();
  $payable = new Item();

  $payment = Payment::performedBy($customer)
    ->via('web')
    ->payWith('tcash')
    ->addTax(10)
    ->addMiscFee(1000);

  $payment->addItem($payable, 2);

  $response = Faspay::registerPayment($payment);

  return Faspay::redirectToPay($payment);
});

Route::get('/callback-notif', function(\Illuminate\Http\Request $request) {
  return Faspay::notified($request, function(\Rifkyekayama\Faspay\Notification $notification) {
    return $notification;
  });
});

要生成自定义账单号/代码,您可以创建一个实现 BillingProfileInterface 的类,例如

class TopupBillingProfile implements BillingProfileInterface
{
  public function description()
  {
    return 'Topup Saldo'; 
  }

  public function generate(Payment $payment)
  {
    return str_random(15);
  }
}

然后将它作为 registerPayment() 方法的第二个参数传递。

错误 & 改进

这个包还远未完美。它还不支持 BCA KlikPay。它也不支持 Faspay Credit API。您可以自由地向我报告您发现的任何错误或发送拉取请求。