通过金额总计到PayPal快速结账

时间:2018-03-06 19:41:52

标签: javascript asp.net paypal webforms paypal-sandbox

我的ASP.NET webforms网页上有快速结账按钮但似乎无法弄清楚如何在点击按钮时将总变量(存储在页面上的标签中)传递给PayPal弹出窗口。

我知道这个问题已被提出(How Can pass order Total to (amount: { total: '0.01', currency: 'USD' } ) in paypal),但答案对我来说没什么意义,也没有像我作为初学者程序员那样详细说明。

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <script src="https://www.paypalobjects.com/api/checkout.js"></script>
     <script>
        paypal.Button.render({
            env: 'sandbox', // sandbox | production
            style: {
                label: 'pay',
                size: 'small', // small | medium | large | responsive
                shape: 'rect',   // pill | rect
                color: 'gold'   // gold | blue | silver | black
            },
            // PayPal Client IDs - replace with your own
            // Create a PayPal app: https://developer.paypal.com/developer/applications/create
            client: {
                sandbox:    'AWDwdGr-KZK4jJi0WBUZmFowgG6oCtLpNDxtXuiOfAT1UdNUYeSlvoXYkrKW7SRdcYqqjHCo7IcYPmJf',
                production: 'Production ClientID'
            },
            // payment() is called when the button is clicked
            payment: function(data, actions) {
                // Make a call to the REST api to create the payment
                return actions.payment.create({
                    payment: {
                        transactions: [
                            {
                                amount: { total: '0.01' , currency: 'EUR' }
                            }
                        ]
                    }
                });
            },
            // onAuthorize() is called when the buyer approves the payment
            onAuthorize: function(data, actions) {

                // Make a call to the REST api to execute the payment
                return actions.payment.execute().then(function() {
                    window.alert('Payment Complete!');
                });
            }
        }, '#paypal-button-container');
    </script>

有人可以就如何做到这一点给我一些指导吗?

1 个答案:

答案 0 :(得分:0)

你链接的答案确实很好地解释了这一点,但是你想要更多的解释,在WebForms中你可以使用asp.net内联服务器标签来访问页面中的元素,只要它们在aspx文件上。语法如下:

<%=ElementName.Property%>

这允许您直接访问该值或将其分配给javascript变量。在你的情况下要么应该正常工作,对于标签等元素和包含文本的东西,你正在寻找的属性通常是innerHTML或innerText,所以下面应该给你所需的结果:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <script src="https://www.paypalobjects.com/api/checkout.js"></script>
     <script>
        paypal.Button.render({
            env: 'sandbox', // sandbox | production
            style: {
                label: 'pay',
                size: 'small', // small | medium | large | responsive
                shape: 'rect',   // pill | rect
                color: 'gold'   // gold | blue | silver | black
            },
            // PayPal Client IDs - replace with your own
            // Create a PayPal app: https://developer.paypal.com/developer/applications/create
            client: {
                sandbox:    'AWDwdGr-KZK4jJi0WBUZmFowgG6oCtLpNDxtXuiOfAT1UdNUYeSlvoXYkrKW7SRdcYqqjHCo7IcYPmJf',
                production: 'Production ClientID'
            },
            // payment() is called when the button is clicked
            payment: function(data, actions) {
                // Make a call to the REST api to create the payment
                return actions.payment.create({
                    payment: {
                        transactions: [
                            {
                                amount: { total: '<%=TheNameOfYourLabel.innerText%>' , currency: 'EUR' }
                            }
                        ]
                    }
                });
            },
            // onAuthorize() is called when the buyer approves the payment
            onAuthorize: function(data, actions) {

                // Make a call to the REST api to execute the payment
                return actions.payment.execute().then(function() {
                    window.alert('Payment Complete!');
                });
            }
        }, '#paypal-button-container');
    </script>