gpt4 book ai didi

javascript - PayPal 开发人员关于逗号的问题

转载 作者:行者123 更新时间:2023-11-30 14:17:09 25 4
gpt4 key购买 nike

我遇到了一个错误。我正在使用 https://developer.paypal.com/docs/checkout/integrate/将 PayPal 支付实现到我的 ASP.NET MVC 项目中。我的货币是 float ,项目的价格是150,99。每当这个价格通过时,它会说价格是 99,00 欧元。它只读取逗号后面的内容。当价格为 190,00 时,它会正确地说价格为 190,00 欧元。我该如何解决?

目前前端的JavaScript是这样的:

<script>
var totalPrice = (@ViewBag.totalPrice);
</script>
<script src="https://www.paypalobjects.com/api/checkout.js"></script>
<script>
// Render the PayPal button
paypal.Button.render({
// Set your environment
env: 'sandbox', // sandbox | production

// Specify the style of the button
style: {
layout: 'horizontal', // horizontal | vertical
size: 'large', // medium | large | responsive
shape: 'pill', // pill | rect
color: 'black' // gold | blue | silver | white | black
},

// Specify allowed and disallowed funding sources
//
// Options:
// - paypal.FUNDING.CARD
// - paypal.FUNDING.CREDIT
// - paypal.FUNDING.ELV
funding: {
allowed: [
paypal.FUNDING.CARD,
paypal.FUNDING.CREDIT
],
disallowed: []
},

// Enable Pay Now checkout flow (optional)
commit: true,

// PayPal Client IDs - replace with your own
// Create a PayPal app: https://developer.paypal.com/developer/applications/create
client: {
sandbox: '<removed>',
production: '<insert production client id>'
},

payment: function (data, actions) {
return actions.payment.create({
payment: {
transactions: [
{
amount: {
total: totalPrice,
currency: 'EUR'
}
}
]
}
});
},

onAuthorize: function (data, actions) {
return actions.payment.execute()
.then(function () {
window.alert('Payment Complete!');
});
}
}, '#paypal-button-container');
</script>

后台的价格是这样的:

        [HttpGet]
public IActionResult Index()
{
...
float totalPrice = 0;
float sendcost = 2.95f;
...
foreach(ShoppingCartModel item in model)
{
item.subtotal = item.qty * item.price;
totalPrice += item.subtotal;
}
if(totalPrice < 100)
{
ViewBag.totalPrice = totalPrice + sendcost;;
}
else
{
ViewBag.totalPrice = totalPrice;
}
}
}
...
}

最佳答案

官方的回答是你的网络应用程序的语言设置导致服务器输出以逗号作为小数点分隔符的数值。所以

var totalPrice = (@ViewBag.totalPrice);

结束

var totalPrice = (150,99);

在浏览器中,因为 JavaScript 有一个叫做 comma operator 的东西, totalPrice 现在是 99

要在服务器端修复此问题,您可以通过添加将用于格式化的语言环境更改为英语

CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("en-US");

Startup.cs 中的 Configure() 方法。

关于javascript - PayPal 开发人员关于逗号的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53403183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com