lunarphp / opayo
Lunar 的 Opayo 支付驱动程序。
1.0.0-beta.2
2024-07-24 10:23 UTC
Requires
- php: ^8.2
- lunarphp/core: 1.0.0-beta.2
- dev-main
- 1.x-dev
- 1.0.x-dev
- 1.0.0-beta.2
- 1.0.0-beta.1
- 1.0.0-alpha.37
- 1.0.0-alpha.36
- 1.0.0-alpha.35
- 1.0.0-alpha.34
- 1.0.0-alpha.33
- 1.0.0-alpha.32
- 1.0.0-alpha.31
- 1.0.0-alpha.30
- 1.0.0-alpha.29
- 1.0.0-alpha.28
- 1.0.0-alpha.27
- 1.0.0-alpha.26
- 1.0.0-alpha.25
- 1.0.0-alpha.24
- 1.0.0-alpha.23
- 1.0.0-alpha.22
- 1.0.0-alpha.21
- 1.0.0-alpha.20
- 1.0.0-alpha.19
- 1.0.0-alpha.18
- 1.0.0-alpha.17
- 1.0.0-alpha.16
- 1.0.0-alpha.15
- 1.0.0-alpha.14
- 1.0.0-alpha.13
- 1.0.0-alpha.12
- 1.0.0-alpha.11
- 1.0.0-alpha.10
- 1.0.0-alpha.9
- 1.0.0-alpha.8
- 1.0.0-alpha.7
- 1.0.0-alpha.6
- 1.0.0-alpha.5
- 1.0.0-alpha.4
- 1.0.0-alpha.3
- 1.0.0-alpha.2
- 1.0.0-alpha.1
- 0.x-dev
- 0.8.x-dev
- 0.8.0
- 0.7.x-dev
- 0.7.0
- 0.6.x-dev
- 0.6.0
- 0.5.x-dev
- 0.5.0
- 0.4.x-dev
- 0.4.0
- 0.3.x-dev
- 0.3.0
- 0.2.x-dev
- 0.2.0
- 0.2-rc1
- 0.1.x-dev
- 0.1.0-rc.1
- dev-1.0.0-alpha
- dev-1.0.0-beta
- dev-alecritson-patch-1
- dev-feat/stripe-refactor
- dev-namespace-update
This package is auto-updated.
Last update: 2024-09-17 08:45:30 UTC
README
此插件使您可以在 Lunar 店面上启用 Opayo 支付。
Alpha 版本
此插件目前处于 Alpha 版,尽管我们已经尽一切努力确保其按预期工作,但只有在添加更多测试并证明无误后,它才会被考虑退出 Alpha 版。
最低要求
- Lunar
1.x
- Elavon 商家账户
安装
需要 composer 包
composer require lunarphp/opayo
配置服务
将 opayo 配置添加到 config/services.php
文件。
// ... 'opayo' => [ 'vendor' => env('OPAYO_VENDOR'), 'env' => env('OPAYO_ENV', 'test'), 'key' => env('OPAYO_KEY'), 'password' => env('OPAYO_PASSWORD'), 'host' => env('OPAYO_HOST'), ],
启用驱动程序
在 config/lunar/payments.php
中设置驱动程序
<?php return [ // ... 'types' => [ 'card' => [ // ... 'driver' => 'opayo', ], ], ];
配置
以下是此包在 config/lunar/opayo.php
中使用的可用配置选项列表
后端使用
获取商家密钥
Lunar\Opayo\Facades\Opayo::getMerchantKey();
授权费用
$response = \Lunar\Facades\Payments::driver('opayo')->cart( $cart = CartSession::current()->calculate() )->withData([ 'merchant_key' => $request->get('merchantSessionKey'), 'card_identifier' => $request->get('cardToken'), 'browserLanguage' => $request->get('browserLanguage'), 'challengeWindowSize' => $request->get('challengeWindowSize'), 'browserIP' => $request->ip(), 'browserAcceptHeader' => $request->header('accept'), 'browserUserAgent' => $request->get('browserUserAgent'), 'browserJavaEnabled' => $request->get('browserJavaEnabled', false), 'browserColorDepth' => $request->get('browserColorDepth'), 'browserScreenHeight' => $request->get('browserScreenHeight'), 'browserScreenWidth' => $request->get('browserScreenWidth'), 'browserTZ' => $request->get('browserTZ'), 'status' => 'payment-received', ])->authorize();
在授权费用时,您可能需要提交额外的身份验证,例如 3DSV2,您可以在支付端点中处理此操作。
if (is_a($response, \Lunar\Opayo\Responses\ThreeDSecureResponse::class)) { return response()->json([ 'requires_auth' => true, 'data' => $response, ]); }
$response
将包含 Opayo 的所有 3DSV2 信息。
您可以使用以下链接获取更多关于此信息
- 3-D Secure 详解
- 3D Secure 交易
- Stack overflow SagePay 3D Secure V2 流程
一旦您在您的店面处理了 3DSV2 响应,然后您可以再次进行授权。
$response = Payments::driver('opayo')->cart( $cart = CartSession::current()->calculate() )->withData([ 'cres' => $request->get('cres'), 'pares' => $request->get('pares'), 'transaction_id' => $request->get('transaction_id'), ])->threedsecure(); if (! $response->success) { abort(401); }
Opayo 卡令牌
当认证用户在您的商店下订单时,提供保存他们卡信息以便将来使用的能力可能是个好主意。虽然我们不存储实际的卡详细信息,但我们可以使用代表用户以前使用的卡的卡令牌。
您必须在 Opayo 账户上启用保存支付,因为您可以使用这些。
要保存卡,请在授权支付时传递 saveCard
数据键。
$response = \Lunar\Facades\Payments::driver('opayo')->cart( $cart = CartSession::current()->calculate() )->withData([ // ... 'saveCard' => true ])->authorize();
假设一切顺利,将在 opayo_tokens
表中添加一个新的条目,与认证用户相关联。然后您可以在结账时显示这些卡片表示供用户选择。 token
是替换 card_identifier
数据键的内容。
$response = \Lunar\Facades\Payments::driver('opayo')->cart( $cart = CartSession::current()->calculate() )->withData([ // ... 'card_identifier' => $request->get('cardToken'), 'reusable' => true ])->authorize();
然后像处理任何其他交易一样处理响应。
贡献
欢迎贡献,如果您正在考虑添加功能,请首先提交一个问题,以便我们可以确定它是否应该被包含。