obydul / laraskrill
LaraSkrill 是一个用于通过 Skrill 处理付款的 Laravel 插件。
Requires
- laravel/framework: >=7.0
README
简介
使用此插件,您可以在 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
信息
- Skrill 快速结账集成指南 - 版本 8.3
- Skrill 自动支付接口 (API) 指南 - 版本 3.2
- Skrill 测试商户电子邮件: demoqco@sun-fish.com,demoqcoflexible@sun-fish.com,demoqcofixedhh@sun-fish.com
- MQI/API 密码和密钥词: mqi: skrill123, secretword: skrill
- Skrill 测试卡号:VISA: 4000001234567890 | MASTERCARD: 5438311234567890
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。
其他
注意:
我从 skrill-quick 中采用了主要概念,并感谢 Mikica Ivosevic。
如果您有任何问题/疑问,请在本站的 讨论区 创建一个。
感谢您安装LaraSkrill。