谁能帮我把订阅按钮和购买按钮放在同一个页面上。
我需要两次引用 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¤cy=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>