同一页面上的 Paypal Javascript SDK 订阅按钮和购买按钮

时间:2021-04-25 12:25:58

标签: javascript paypal

谁能帮我把订阅按钮和购买按钮放在同一个页面上。

我需要两次引用 JS SDK,一次使用购买按钮的默认意图,另一次使用 intent=subscription 作为订阅选项。

但是第二次调用它会破坏第一个。代码如下。这只会生成购买按钮。同样,如果您切换顺序,它只会创建订阅按钮。

chrome console error screenshot


<html>
<body>

<div id="paypal-button-subscribe"></div></br>

<div id="paypal-button-purchase"></div>
 
 
<!-- ***********************SUBSCRIPTION BUTTON CODE********************** -->

<script src="https://www.paypal.com/sdk/js?client-id=HIDDENFORTHISPURPOSE&vault=true&intent=subscription" data-sdk-integration-source="button-factory"></script> 

<script>
  paypal.Buttons({
      style: { 
          shape: 'rect',
          color: 'silver',
          layout: 'vertical',
          label: 'subscribe'
      },
      createSubscription: function(data, actions) {
        return actions.subscription.create({
          plan_id: 'P-9JP33954G5530770FMBXXXXX',
          
          custom_id: "123",
          
           application_context: {
        shipping_preference: 'NO_SHIPPING', 
        brand_name: 'MyBrand'
      }
          
        });
      },
      onApprove: function(data, actions) {
         window.location.assign("https://example.co/purchase/success.php?sub=" + data.subscriptionID + "&authdata=" + authdata + "&type=1");
      }
  }).render('#paypal-button-subscribe'); // Renders the PayPal button
</script>

<!-- ***************************************************************************** -->


<!-- *******************PURCHASE BUTTON CODE********************** -->
<script src="https://www.paypal.com/sdk/js?client-id=HIDDENFORTHISPURPOSEt&currency=GBP"></script> 

<script>
    function initPayPalButton() {
      paypal.Buttons({
        style: {
          shape: 'rect',
          color: 'gold',
          layout: 'vertical',
          label: 'paypal',
          
        },

        createOrder: function(data, actions) {
          return actions.order.create(
          {
         purchase_units: [{"description":"lifetime licence key-","amount":{"currency_code":"GBP","value":0.1}}],
            
        
            
               application_context: {
        shipping_preference: 'NO_SHIPPING', 
        brand_name: 'MyBrand'
               }
     
          }
            
          );
        },

        onApprove: function(data, actions) {
          return actions.order.capture().then(function(details) {
            window.location.assign("https://example.co/purchase/success2.php?sub=" + details.payer.name.given_name);
          });
        },

      }).render('#paypal-button-purchase');
    }
    initPayPalButton();
    
</script>
<!-- **************************************************************************** -->

</body>
</html>


0 个答案:

没有答案
相关问题