PayPal按钮无法在https上工作

问题描述:

我的PayPal按钮(实际上是快速结帐)在https上不起作用,当我通过https访问我的应用时,我意识到了这一点。PayPal按钮无法在https上工作

不确定这是我的https阻止此脚本。

<script src="https://www.paypalobjects.com/api/checkout.js" data-version-4></script> 

我没有问题看到该按钮被加载到本地主机(开发环境)。但在生产中以https,我得到这个错误

ppxo_xc_ppbutton_error Object 

Error: Document is ready and element #paypal-button does not exist 

我使用的角度,这个代码块是我的控制器内

paypal.Button.render({ 

     env: 'production', // Optional: specify 'sandbox' environment 

     payment: function() { 

      var env = this.props.env; 
      var client = this.props.client; 

      return paypal.rest.payment.create(env, client, { 
       transactions: [{ 
        amount: { total: 5 , currency: 'USD' }, 
        item_list: { 
        items: [{ 
         "name": "profile", 
         "price": "5", 
         "currency": "USD" 
        }] 
       } 
       }], 
       redirect_urls: { 
       "return_url": $location.absUrl(), 
       "cancel_url": $location.absUrl() 
       } 
      }); 
     }, 

     commit: true, // Optional: show a 'Pay Now' button in the checkout flow 

     onAuthorize: function(data, actions) { 

      return actions.payment.execute().then(function() { 

       actions.payment.get().then(function(data){ 

       if(data.state === 'approved'){ 
        $http.post('/paid',{qty:$scope.number_of_uses,user_email:user_email}) 
        .then(function(response){ 

         $scope.done = true; 

        }); 
       } 

       }); 

      }); 
     } 

    }, '#paypal-button'); 

我再说一遍,它的工作在本地主机罚款,但不是在HTTPS (生产)。

+0

请提供[mcve]。 –

+0

元素'#paypal-button'不存在 – MackieeE

+0

@MackieeE不,它的确如此。它只是不工作在https中,它运行良好,当我在发展URL是http:// localhost:3000 –

按钮实际上是设置了一个角分量为您提供:

https://github.com/paypal/paypal-checkout/blob/master/docs/frameworks.md#angularjs-element

可能是明智的使用。我怀疑,如果你尝试直接在角度控制器中渲染,它可能还没有渲染容器元素,因此你的错误。

+0

那么为什么它在http中工作? –

+0

不知道,除非你可以提供一个你正在使用的角码的例子,也许我可以尝试一个演示页面。 – bluepnume

+0

我在角模板完成渲染之前发现了脚本加载。我使用Chrome的网络工具进行调试,我使用较慢的连接。我把暂停的贝宝功能,现在它的工作。 –