我正在尝试在我的Symfony 4 PHP应用程序中设置Braintree集成。
我使用composer来要求并安装Braintree SDK的最新版本,并在env文件中添加了测试凭据。
设置客户端
https://developers.braintreepayments.com/start/hello-client/javascript/v3
然后,我将客户端代码添加到我的小枝模板中,用于插入UI。
<div id="dropin-container"></div>
<button id="submit-button">Request payment method</button>
<script>
var button = document.querySelector('#submit-button');
braintree.dropin.create({
authorization: 'CLIENT_TOKEN_FROM_SERVER',
container: '#dropin-container'
}, function (createErr, instance) {
button.addEventListener('click', function () {
instance.requestPaymentMethod(function (err, payload) {
// Submit payload.nonce to your server
});
});
});
</script>并将此脚本包含在js块中。
<script src="https://js.braintreegateway.com/web/dropin/1.14.1/js/dropin.min.js"></script>设置服务器
https://developers.braintreepayments.com/start/hello-server/php
下一步是生成一个客户机令牌。
$clientToken = $gateway->clientToken()->generate([
"customerId" => $aCustomerId
]);然后将令牌发送到客户端等。
问题
我的问题是,我应该把服务器端代码放在我的Symfony 4应用程序中吗?
您是在src/Services中创建一个Braintree.php服务,并将所有Braintree PHP代码放入其中或在控制器中,还是将其中的一些放在其中?
发布于 2019-01-04 09:21:00
最佳做法是使控制器尽可能细。控制器方法应:
这都是控制器应该负责的。在您的示例中,适当的服务将是您的BraintreeService,它是一个类,它负责处理与Braintree SDK或任何与Braintree相关的任何操作。
Symfony遵循“瘦控制器和胖模型”的理念。这意味着控制器应该只包含协调应用程序不同部分所需的薄层胶水代码。
https://stackoverflow.com/questions/54035374
复制相似问题