Paypal按钮无法在https

时间:2017-02-19 16:40:05

标签: javascript paypal express-checkout

我的paypal按钮(实际上是快速结账)无法在https上运行,当我使用https访问我的常用应用时,我意识到了这一点。

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

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

我在localhost(开发环境)上加载按钮时没有问题。但是在使用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');

我再说一遍,它在localhost中工作正常,但在https(生产)中却没有。

1 个答案:

答案 0 :(得分:0)

该按钮实际上为您设置了一个角度分量:

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

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