【发布时间】:2017-07-24 21:52:34
【问题描述】:
我正在创建一个使用 PHP/Laravel 和 Braintree 进行支付的网络应用程序。我正在使用 Braintree dropin。
网络应用的简化流程:
- 用户上传文件并从下拉列表中选择服务,提交表单
- 向用户显示的报价/价格是根据上传文件的字数 * 选择的服务计算得出的
- 用户通过 Braintree 插件选择付款,提交表单付款
- Web 应用程序触发
Braintree_Transaction::sale() - 用户显示成功页面
向客户收费
关于上述内容,我想就在步骤 4 中的 Braintree_Transaction::sale() 方法调用中设置金额的最佳做法获得一些建议。
在 Braintree PHP example on github 中,Braintree_Transaction::sale() 方法调用中使用的数量取自表单中的文本输入,这可以由用户编辑,我假设是出于示例目的。
在上述我的网络应用程序流程中,在第 1 步之后,我是否正确设置会话中所选服务的报价/价格,然后在第 2 步中将会话中的该值显示给用户,最后传递该值从amount 到Braintree_Transaction::sale() 的会话?还是有不同的推荐方法可以采取?我主要关心的是向客户收取正确的金额。
避免舍入错误
由于报价/价格是在 PHP 中通过获取上传文件的字数并将其乘以客户选择的服务来计算的,因此有时会涉及浮点数。例如。字数为 1000,所选服务为校对 x1.5,因此报价为 1500 => £15.00。
如果我没记错的话,例如,Stripe 表示一磅 (£) 便士 100。这很好,因为它有助于避免舍入错误。另一方面,我相信 Braintree 期望一磅 (£) 用小数点 1.00 表示。
在这种情况下,避免任何舍入错误的最佳方法是什么?
感谢您的任何建议,如果需要,请询问更多详细信息
【问题讨论】:
标签: php paypal e-commerce braintree