首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在客户端编辑键值解析中的字符串。(Paypal结账演示)

如何在客户端编辑键值解析中的字符串。(Paypal结账演示)
EN

Stack Overflow用户
提问于 2019-10-22 04:43:00
回答 1查看 55关注 0票数 0

我有一个小的在线业务,在那里我想实现一个在线支付系统。我最终选择的是paypal,他们有一个简单易用的解决方案,可以在这里找到:https://developer.paypal.com/demo/checkout/#/pattern/client

我目前不清楚如何才能允许最终用户编辑他们想要支付的金额。按照目前的情况,一旦付款,最终用户只能支付1美分(或无论我将字符串值更改为多少。无论哪种方式,该值都是静态的)。我想找到一种解决方案,最终用户可以支付他们想要的多或少。

paypal提供的代码如下:

代码语言:javascript
运行
复制
<div class='uk-section'>
            <!-- Set up a container element for the button -->
            <div id="paypal-button-container"></div>

            <!-- Include the PayPal JavaScript SDK -->
            <script src="https://www.paypal.com/sdk/js?client-id=sd=USD"></script>

            <script>
                // Render the PayPal button into #paypal-button-container
                paypal.Buttons({

                    // Set up the transaction
                    createOrder: function(data, actions) {
                        return actions.order.create({
                            purchase_units: [{
                                amount: {
                                    value: '0.01'
                                }
                            }]
                        });
                    },

                    // Finalize the transaction
                    onApprove: function(data, actions) {
                        return actions.order.capture().then(function(details) {
                            // Show a success message to the buyer
                            alert('Transaction completed by ' + details.payer.name.given_name + '!');
                        });
                    }


                }).render('#paypal-button-container');
            </script>
        </div>

正如您所看到的,值amount是一个对象中、另一个对象中、数组中、对象中的字符串键对,这是函数中返回语句的输入参数。任何找到工作解决方案的指导都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-05-27 01:55:34

只需将您的金额放在输入字段中,以便用户输入他/她的值,并使用该值将其传输到PayPal应用程序接口。对于HTML,只需使用输入字段输入用户的金额即可。将REST API V2客户端代码与JavaScript和Jquery混合使用

代码语言:javascript
运行
复制
        // Render the PayPal button into #paypal-button-container
       // by - Using PayPal REST V2 API
       paypal
        .Buttons({


    style: {
        layout: 'horizontal',
        color: 'gold',
        shape: 'pill',
        label: 'checkout',
        size: 'responsive',
        tagline: 'true',
    },
    // Set up the transaction
    createOrder: function(data, actions) {
        $('#paypalmsg').hide();
        $('#transmsg').html('<b>'+'WAITING ON AUTHORIZATION...'+'</b>');
        $('#chkoutmsg').hide()
        return actions.order.create({
            purchase_units: [{
                description: 'GnG Order',
                amount: {
                    value: cartTotal (HERE IS WHERE YOUR USER INPUT AMOUNT WOULD GO AS 
                    A VARIABLE, you will have to make it a VAR using JavaScript or 
                    Jquery, I.E. UserVal = $(USERSelect).val();)

                }
            }],
            application_context: {
              shipping_preference: 'NO_SHIPPING'
            }

           });
       },
       // Finalize the transaction
       onApprove: function(data, actions) {
        return actions.order.get().then(function(orderDetails) {
                // Show a success message to the buyer
                $('#transmsg').html('<b>' + 'AUTHORIZED...' + '</b>');
                $('#transmsg').append('<br>'+'Transaction completed by: ' + 
                orderDetails.payer.name.given_name +' '+ 
                orderDetails.payer.name.surname + '<br>' + "Order Id: " + 
                 orderDetails.id + '<br>' + 'Status: ' + orderDetails.status+'!' + 
                '<br>'+ 'Thank You For Your Order'+ '<br>');
                if (orderDetails.status === "APPROVED") {
                    window.setTimeout(function() {}, 500)
                     $('#transmsg').append('<b>' + 'Sending Order...Please Wait' + 
                    '</b>'+'<br>');
                     // do some form clean up before the email post 
                     var getId = '#'+ $('span:contains("Market")').attr('id');
                     var getmrktDiv = '#'+ $(getId).offsetParent().attr('id');
                     var mrktchkId = '#'+ 
                     $(getmrktDiv).closest(getmrktDiv).find(".chkbox").attr('id');
                     var mrktpriceId = '#'+ 
                     $(getmrktDiv).closest(getmrktDiv).find(".price").attr('id');
                     var chkboxId = "#chk6";
                     var hidpriceId = "#pricef";
                     var marketLocation =  $(mrktchkId);
                     /* Lets do a little Validation */
                     /* This is WHERE you do any form validation (without using PayPal 
                     built-in Validation function */
                     if (marketLocation.length > 0 ) {
                       var checked = $(mrktchkId).prop('checked');
                       if (!checked) {
                         var storedVal = $(mrktpriceId).val();
                         if ($(mrktpriceId+':not([data-val])')) {
                           $(mrktpriceId).attr("data-val", storedVal);
                         }
                       $(mrktpriceId).val("");
                       }
                     }

                    $('#transid').val(orderDetails.id); (PAYPAL RETURN TRANSACTION ID, 
                                                         ADD TO FORM BEFORE POST)
                    $('#orderstat').val(orderDetails.status); (PAYPAL ORDER STATUS,
                                                         ADD TO FORM BEFORE POST)                                                                
                    $('#orderform').submit(); (SEND EMAIL TO BUSINESS EMAIL AFTER 
                                               TRANSACTION IS AUTHORIZED)
                } 
             });

             if (details.error === 'INSTRUMENT_DECLINED') {
                $('#transmsg').html('<b>' + 'TRANSACTION WAS DECLINED'+'</b>');
                $('#transmsg').fadeIn('slow').delay(3000).fadeOut('slow', function() {
                $('#paypalmsg').show();
                $('#chkoutmsg').show();
                $('#transmsg').empty();
             });

            return actions.restart();
           };
         },

         onCancel: function(data) {
            $('#transmsg').html('<b>' + 'YOUR TRANSACTION WAS CANCELLED' + '</b>');
            $('#transmsg').fadeIn('slow').delay(3000).fadeOut('slow', function() {
            $('#paypalmsg').show();
            $('#chkoutmsg').show();
            $('#transmsg').empty();
         });
       }

       }).render('#paypal-button-container');

       </script>

希望这篇文章能帮你找到正确的方向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58493863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档