obydul/laraskrill

LaraSkrill 是一个用于通过 Skrill 处理付款的 Laravel 插件。

v1.2.0 2022-07-03 19:02 UTC

This package is auto-updated.

Last update: 2024-09-07 12:27:12 UTC


README

Latest Stable Version Latest Unstable Version License

简介

使用此插件,您可以在 Laravel 应用程序中处理或退款 Skrill 付款。您可以阅读这篇文章,并查看此包的输出。文章链接:使用 LaraSkrill 集成 Laravel Skrill 付款网关

演示 Laravel 项目: Laravel LaraSkrill 集成

安装

  • 使用以下命令进行安装
composer require obydul/laraskrill
  • Laravel 5.5 使用包自动发现,因此不需要您手动添加 ServiceProvider。如果您不使用自动发现,请将服务提供者添加到您的 config/app.php 文件中的 $providers 数组中,如下所示:
Obydul\LaraSkrill\LaraSkrillServiceProvider::class

安装完成。

配置

  • 安装后,创建一个构造函数。
/**
 * Construct.
 */
private $skrilRequest;

public function __construct()
{
    // skrill config
    $this->skrilRequest = new SkrillRequest();
    $this->skrilRequest->pay_to_email = 'demoqco@sun-fish.com'; // your merchant email
    $this->skrilRequest->return_url = 'RETURN URL';
    $this->skrilRequest->cancel_url = 'CANCEL URL';
    $this->skrilRequest->logo_url = 'https://cdn.shouts.dev/images/shoutsdev.png';  // optional
    $this->skrilRequest->status_url = 'IPN URL or Email';  // you can use https://webhook.site webhook url as test IPN
    $this->skrilRequest->status_url2 = 'IPN URL or Email'; // optional
}

API/MQI 密码

要退款,我们需要 API/MQI 密码。在您的 Skrill 账户中,转到设置 > 开发者设置 > 更改 MQI/API 密码。

用法

以下是您可以通过它访问 LaraSkrill 提供商的一些方法

// Import the class namespaces first, before using it directly
use Obydul\LaraSkrill\SkrillClient;
use Obydul\LaraSkrill\SkrillRequest;

// Create object instance
$request = new SkrillRequest();
$client = new SkrillClient($request);

// Methods
$sid = $client->generateSID();
$client->paymentRedirectUrl($sid);
$refund_prepare_response = $client->prepareRefund();
$do_refund = $client->doRefund();

创建付款

// create object instance of SkrillRequest
$this->skrilRequest->amount = '10.26';
$this->skrilRequest->currency = 'USD';
$this->skrilRequest->language = 'EN';
$this->skrilRequest->prepare_only = '1';

// custom fields (optional)
$this->skrilRequest->merchant_fields = 'site_name, invoice_id, customer_id, customer_email';
$this->skrilRequest->site_name = 'Shout.dev';
$this->skrilRequest->invoice_id = 'INV_' . strtoupper(str()->random(10));
$this->skrilRequest->customer_id = 1001;
$this->skrilRequest->customer_email = 'customer@shouts.dev';

$this->skrilRequest->detail1_description = 'Product ID:';
$this->skrilRequest->detail1_text = '101';

// you can also pass your unique transaction id  (optional)
// $this->skrilRequest->transaction_id = 'SHOUTSTX0001';

// create object instance of SkrillClient
$client = new SkrillClient($this->skrilRequest);
$sid = $client->generateSID(); //return SESSION ID

// handle error
$jsonSID = json_decode($sid);
if ($jsonSID != null && $jsonSID->code == "BAD_REQUEST")
    return $jsonSID->message;

// do the payment
$redirectUrl = $client->paymentRedirectUrl($sid); //return redirect url
return redirect()->to($redirectUrl); // redirect user to Skrill payment page

退款

// Create object instance of SkrillRequest
$prepare_refund_request = new SkrillRequest();
// config
$prepare_refund_request->email = 'merchant_email';
$prepare_refund_request->password = 'api_password';
$prepare_refund_request->refund_status_url = 'refund_status_url';
// request
$prepare_refund_request->transaction_id = 'MNPTTX0001';
$prepare_refund_request->amount = '5.56';
$prepare_refund_request->refund_note = 'Product no longer in stock';
$prepare_refund_request->merchant_fields = 'site_name, customer_email';
$prepare_refund_request->site_name = 'Your Website';
$prepare_refund_request->customer_email = 'customer@example.com';

// do prepare refund request
$client_prepare_refund = new SkrillClient($prepare_refund_request);
$refund_prepare_response = $client_prepare_refund->prepareRefund(); // sid or error code

// refund requests
$refund_request = new SkrillRequest();
$refund_request->sid = $refund_prepare_response;

// do refund
$client_refund = new SkrillClient($refund_request);
$do_refund = $client_refund->doRefund();
dd($do_refund); // response

注意

表 1:LaraSkrill 配置参数

结账参数

Skrill 结账有许多参数。请参阅第 13 页。Skrill 快速结账集成指南 - v8.3

注意: 'pay_to_email', 'return_url', 'cancel_url', 'status_url', 'status_url2' 和 'logo_url' 已经包含在配置文件中。您可以在结账时添加其他字段,无需这些字段。

表 2:退款参数

更多参数:您可以添加更多字段。请参阅第 24 页。Skrill 自动支付接口 (API) 指南 - v3.0

注意: 'action', 'email', 'password', 'status_url' 已经包含。您可以在退款时添加其他字段,无需这些字段。

Skrill IPN (status_url):如果您想从 'status_url' 获取数据而不是接收电子邮件,请使用以下代码到您的 ipn 监听器:Md. Obydullah 的 Skrill IPN

信息

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。

其他

注意: 我从 skrill-quick 中采用了主要概念,并感谢 Mikica Ivosevic

如果您有任何问题/疑问,请在本站的 讨论区 创建一个。

感谢您安装LaraSkrill。