程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为脚本标记自定义自己的 src 时未定义 Paypal大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决为脚本标记自定义自己的 src 时未定义 Paypal?

开发过程中遇到为脚本标记自定义自己的 src 时未定义 Paypal的问题如何解决?下面主要结合日常开发的经验,给出你关于为脚本标记自定义自己的 src 时未定义 Paypal的解决方法建议,希望对你解决为脚本标记自定义自己的 src 时未定义 Paypal有所启发或帮助;

在我的项目中,我使用 PayPal 实现 (https://developer.paypal.com/docs/checkout?keywords=checkout) 使付款成为可能。

首先,我询问客户他喜欢哪种付款方式,并在此基础上生成相应的付款按钮(paypal、信用卡或bancontact)。当我使用下面的代码时,出现以下错误:

未捕获的引用错误:paypal 未定义。

如下所示,我在触发 PayPal 代码之前将正确的脚本标记添加到我的 HTML 代码中,所以这应该不是问题。

HTML 代码 (paypal-div)

<div ID="paypal-button-container"></div>

JavaScript 代码

let ra@R_404_6901@s = document.querySELEctorAll('.pm');
const script = document.createElement("script");
let src = '';

ra@R_404_6901@s.forEach(ra@R_404_6901@ => {
    if (ra@R_404_6901@.checked) {
        supper_data.payment_method = (ra@R_404_6901@.value).charat(0).toupperCase() + (ra@R_404_6901@.value).slice(1);   

        if((ra@R_404_6901@.value).charat(0).toupperCase() + (ra@R_404_6901@.value).slice(1) === "Bancontact") { 
            src = 'https://www.paypal.com/sdk/Js?clIEnt-ID=ASuRqSAZYj9/*...*/-FEXCHWao5SA7-SADYX6werETXouajdiBP1UeSAJpJbMbrtCOy59C7C-C&currency=EUR&disable-funding=card,sofort,credit';
        } else if (supper_data.payment_method === "Visa") {
            src = 'https://www.paypal.com/sdk/Js?clIEnt-ID=ASuRqSAZYj9/*...*/-FEXCHWao5SA7-SADYX6werETXouajdiBP1UeSAJpJbMbrtCOy59C7C-C&currency=EUR&disable-funding=bancontact,credit';
        } else {
            src = 'https://www.paypal.com/sdk/Js?clIEnt-ID=ASuRqSAZYj9/*...*/-FEXCHWao5SA7-SADYX6werETXouajdiBP1UeSAJpJbMbrtCOy59C7C-C&currency=EUR&disable-funding=bancontact,card';
        }

    }
});

script.type = "text/JavaScript";
script.src = src;
document.head.append(script);

document.querySELEctor('#paypal-button-container').style.display = "block";

paypal.buttons({
    style: {
        shape: 'pill',color: 'blue'
    },createOrder: (data,actions) => {
        return actions.order.create({
            purchase_units: [{
                amount: {
                    currency_code: "EUR",value: price
                }
            }]
        });
    },onApprove: (data,actions) => {
        return actions.order.capture().then((details) => {
            $.AJAX({
                url: "./includes/delete-cart.php",method: "GET",success: function (data) {
                    Swal.fire({
                        icon: 'success',title: 'Betaling Afgerond',text: 'Uw bestelling is ontvangen.'
                    }).then(() => {
                        window.LOCATIOn.reload();
                    })
                    console.log(details);
                }
            });
        })
    }
}).render('#paypal-button-container');

解决方法

以这种方式加载脚本是异步的并且需要时间,因此您应该使用 onload 事件回调

//Helper function

function loadAsync(url,callBACk) {
  var s = document.createElement('script');
  s.setAttribute('src',url); s.onload = callBACk;
  document.head.insertBefore(s,document.head.firstElementChild);
}

// Usage -- callBACk is inlined here,but could be a named function

loadAsync('https://www.paypal.com/sdk/js?client-id=sb&currency=USD',function() {
  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) {
           //...
        });
    }

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

大佬总结

以上是大佬教程为你收集整理的为脚本标记自定义自己的 src 时未定义 Paypal全部内容,希望文章能够帮你解决为脚本标记自定义自己的 src 时未定义 Paypal所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:src