webdna / commerce-opayo
Opayo 集成方案,适用于 Craft Commerce 3.3+
2.0.4
2024-03-05 16:02 UTC
Requires
- craftcms/cms: ^4.0
- craftcms/commerce: ^4.0
README
Opayo for Craft Commerce
本插件提供了 Opyao 集成方案,适用于 Craft Commerce。
要求
本插件需要 Craft 3.6 和 Craft Commerce 3.3 或更高版本。
安装
您可以从插件商店或使用 Composer 安装此插件。
从插件商店
前往项目控制面板中的插件商店,搜索“Opayo for Craft Commerce”,然后在模态窗口中点击“安装”按钮。
使用 Composer
打开终端并运行以下命令
# go to the project directory cd /path/to/my-project.test # tell Composer to load the plugin composer require craftcms/commerce-opayo # tell Craft to install the plugin ./craft install/plugin commerce-opayo
设置
要添加 Opayo 支付网关,请转到 Commerce → 设置 → 网关,创建一个新的网关。
提示:供应商、集成密钥和集成密码网关设置可以设置为环境变量。有关详细信息,请参阅 Craft 文档中的 环境配置。
使用传统购物车格式
示例实现
<form method="POST" id="opayo-form"> {{ csrfInput() }} {% set gateway = craft.commerce.gateways.getGatewayByHandle('opayo') %} <script src="{{ gateway.getJs() }}"></script> <input type="hidden" name="nonce"> <input type="hidden" name="sessionKey" value="{{ gateway.token }}"> <input type="text" id="name" value="" autocomplete="off" required> <input type="text" id="cardnumber" value="" autocomplete="off" required> <input type="text" id="expiry" placeholder="MMYY" value="" autocomplete="off" required> <input type="text" id="cvv" value="" autocomplete="off" required> <button type="submit">Submit</button> </form>
function paymentFormSubmit(e) { e.preventDefault(); // disable submit button e.target.querySelector('button[type="submit"]').disabled = true; sagepayOwnForm({ merchantSessionKey: e.target.querySelector('input[name="sessionKey"]').value }).tokeniseCardDetails({ cardDetails: { cardholderName: e.target.querySelector('[id="name"]').value, cardNumber: e.target.querySelector('[id="cardnumber"]').value, expiryDate: e.target.querySelector('[id="expiry"]').value, securityCode: e.target.querySelector('[id="cvv"]').value, }, onTokenised: function(result) { if (result.success) { e.target.querySelector('[name="nonce"]').value = result.cardIdentifier; e.target.removeEventListener('submit', paymentFormSubmit); e.target.submit(); } else { alert(result.errors.join(', ')); } } }); } document.getElementById('opayo-form').addEventListener('submit', paymentFormSubmit);