当前位置: 首页 > 知识库问答 >
问题:

PayPal Express checkout.js-在checkout.js中未定义的索引

周阳成
2023-03-14
TypeError: Cannot read property 'indexOf' of undefined
    at Object.onSuccess (https://www.paypalobjects.com/api/checkout.js:11449:30)
    at _loop2 (https://www.paypalobjects.com/api/checkout.js:1670:62)
    at SyncPromise.dispatch (https://www.paypalobjects.com/api/checkout.js:1700:29)
    at SyncPromise.then (https://www.paypalobjects.com/api/checkout.js:1718:18)
    at Component.buildUrl (https://www.paypalobjects.com/api/checkout.js:11448:40)
    at Object.onSuccess (https://www.paypalobjects.com/api/checkout.js:8770:57)
    at _loop2 (https://www.paypalobjects.com/api/checkout.js:1670:62)
    at SyncPromise.dispatch (https://www.paypalobjects.com/api/checkout.js:1700:29)
    at SyncPromise.then (https://www.paypalobjects.com/api/checkout.js:1718:18)
    at Function.syncPromiseTry [as try] (https://www.paypalobjects.com/api/checkout.js:1763:42)"
return props.payment().then(function(token) {
    if (token.indexOf("BA-") === 0) {
        paypal.Button.render({
            env: 'sandbox', // Specify 'sandbox' for the test environment
            payment: function() {
                var CREATE_PAYMENT_URL = '/api/checkout/create-express-payment';
                paypal.request.post(CREATE_PAYMENT_URL)
                    .then(function(data) {
                        console.log('Payment ID: ', data.paymentId);
                        resolve(data.paymentId);
                    })
                    .catch(function(err) {
                        reject(err);
                    });
            },

            onAuthorize: function(data, actions) {
                // Execute the payment here, when the buyer approves the transaction
            }

        }, '#paypal-button');

共有1个答案

南门鸿哲
2023-03-14

我有这个问题。我的用例是Express Checkout(客户端)和Paypal SDK(服务器)。贝宝将此称为高级集成。

我通过以下方式解决了这个问题:

我让我的服务器返回一个JSON对象作为响应,并带有一个属性“paymentID”。在Paypal文档的高级集成页面中对此进行了解释,但它的重要性没有说得足够清楚。

{
    "paymentID": "PAY-0J356327TH335450NK56Y2PQ"
}
 paypal.Button.render({
   env: 'sandbox',
   payment: function(resolve, reject) {
     var CREATE_PAYMENT_URL = 'http://localhost/api/payment/create';
     paypal.request.post(CREATE_PAYMENT_URL, {
     // js object used to create payment
     }).then(function(data) {
         resolve(data.paymentID);
     }).catch(function(err) {
         reject(err);
     });
   },
   onAuthorize: function(data) {
     var EXECUTE_PAYMENT_URL = 'http://localhost/api/payment/execute';
     paypal.request.post(EXECUTE_PAYMENT_URL, {
     // js object used to complete payment
     // needs to include properties for paymentID and payerID
     }).then(function(data) {
     // process results after transaction is completed
     }).catch(function(err) {});
   },
   onCancel: function(data) {}
 }, '#paypal-button');
 类似资料:
  • 问题内容: 我正在尝试重新学习一些用于编写简单登录脚本的PHP基础知识,但是遇到了以前从未收到的错误(一年多以前我制作了相同的脚本,但从未遇到此错误。我尽可能简化了代码我可以测试一下哪个区域出了问题,这就是问题所在: 现在,当我将变量发送到脚本时,此代码可以正常工作,但是如果未提供任何变量,它将发出错误。从理论上讲,这会很好,因为如果没有提供用户名/密码,则可能会出现错误。在将代码发送到脚本之前,

  • Checkout.js是一个jQuery插件,可以轻松实现电子商务网站的签出。 一个简单的checkout.js示例如下所示 - <html xmlns = "https://www.w3.org/1999/xhtml"> <head> <meta http-equiv = "Content-Type" content = "text/html; charset = iso-88

  • 问题内容: 这听起来真的很愚蠢,但我无法弄清楚为什么会收到此错误。 我创建了一个选择框,以我的html形式命名为“ query_age”: 在相应的php形式中,我有: 运行页面时,出现此错误: 注意:未定义的索引:第19行的index.php中的query_age 我不明白为什么会这样,我很想知道如何解决它。 问题答案: 我没有看到php文件,但是可能就是这样- 在您的php文件中替换: 与:

  • 我有一些r/cerot代码来将几个交叉验证的模型适合于一些数据,但是我收到一条警告消息,说我在查找有关的任何信息时遇到了困难。这是我应该关心的事吗?

  • 问题内容: 当我尝试在其他PHP服务器上运行脚本时,出现了一个新问题。 在我的旧服务器上,即使未声明任何参数,以下代码也可以正常工作。 但是现在,在本地计算机(XAMPP-Apache)上的本地服务器上,如果未定义for的值,则会出现以下错误。 如果为声明了值,但脚本要调用某些javascript函数会发生什么,但是如果未声明任何内容,我希望页面能够正常加载。 你能帮助我吗? 问题答案: 错误报告

  • 问题内容: 我是PHP的新手,并且在会话方面更是初学者。我有index.php页面,用户可以在其中注册和登录。表单分别发布到validate.php和loginvalidate.php页面,以进行注册和登录。 加载时在index.php上出现以下错误: 1)注意:未定义的索引:已注册2)注意:未定义的索引:从未使用 我已经尝试过多种方式来修改我的文字,但是我从来没有解决错误。 Index.php