[英]Paypal Braintree Subscription Payments
I cannot find anywhere how to do the javascript code for paypal subscription via braintree. 我找不到任何地方如何通过braintree为paypal订阅做javascript代码。 Here is the code that I currently have that at least gets me to the checkout part for a single transaction amount.
这是我目前拥有的代码,至少让我到单个交易金额的结账部分。 But I want to know how to implement a monthly reoccurring amount.
但我想知道如何实施每月重复发生的金额。 lets say 1.99 a month until it is canceled.
我们说每月1.99,直到它被取消。 What am I missing?
我错过了什么?
Java Code Java代码
@Path("/braintree")
public class TestBraintree {
private static BraintreeGateway gateway = new BraintreeGateway(
Environment.SANDBOX,
"myMerchantId",
"myPublicKey",
"myPrivateKey"
);
@GET
@Path("/client_token")
public String getMsg() {
return gateway.clientToken().generate();
}
@POST
@Consumes("application/json")
@Path("/checkout")
public String getCheckoutMessage(String json) {
// String nonceFromTheClient = request .queryParams("payment_method_nonce");
System.out.println();
return "";
}
}
Html Code Html代码
<head>
<script src="https://www.paypalobjects.com/api/checkout.js"></script>
<script src="https://js.braintreegateway.com/web/3.11.0/js/client.min.js"></script>
<script src="https://js.braintreegateway.com/web/3.11.0/js/paypal-checkout.min.js"></script>
</head>
<body>
<div id="paypal-button-container"></div>
var client_token = document.getElementById('clientId').value;
<script>
paypal.Button.render({
braintree: braintree,
client: {
production: client_token,
sandbox: client_token,
},
env: 'sandbox', // Or 'sandbox'
commit: true, // This will add the transaction amount to the PayPal button
payment: function (data, actions) {
return actions.braintree.create({
flow: 'checkout', // Required
amount: 10.00, // Required
currency: 'USD', // Required
enableShippingAddress: true,
shippingAddressEditable: false,
shippingAddressOverride: {
recipientName: 'Scruff McGruff',
line1: '1234 Main St.',
line2: 'Unit 1',
city: 'Chicago',
countryCode: 'US',
postalCode: '60652',
state: 'IL',
phone: '123.456.7890'
}
});
},
onAuthorize: function (payload) {
// Submit `payload.nonce` to your server.
},
}, '#paypal-button-container');
</script>
</body>
It looks like you're using Checkout with PayPal, which is intended for one-time payments. 看起来您正在使用Checkout with PayPal,这是一次性付款。 If you want to store a customer's payment information for the purpose of creating a subscription, you'll need to use the PayPal vaulted payment flow :
如果您要存储客户的付款信息以进行订阅,则需要使用PayPal存储的付款流程 :
// Set up PayPal with the checkout.js library
paypal.Button.render({
env: 'production', // or 'sandbox'
payment: function () {
return paypalCheckoutInstance.createPayment({
flow: 'vault',
billingAgreementDescription: 'Your agreement description',
enableShippingAddress: true,
shippingAddressEditable: false,
shippingAddressOverride: {
recipientName: 'Scruff McGruff',
line1: '1234 Main St.',
line2: 'Unit 1',
city: 'Chicago',
countryCode: 'US',
postalCode: '60652',
state: 'IL',
phone: '123.456.7890'
}
});
},
onAuthorize: function (data, actions) {
return paypalCheckoutInstance.tokenizePayment(data)
.then(function (payload) {
// Submit `payload.nonce` to your server.
});
}
Once your customer completes the checkout, you can submit the resulting payload.nonce
to your server and use it in a customer create call . 客户完成结帐后,您可以将生成的
payload.nonce
提交给您的服务器,并在客户创建调用中使用它。 You can then set up a recurring subscription on the newly vaulted PayPal payment method using a subscription create call . 然后,您可以使用订阅创建调用在新的拱形PayPal付款方式上设置定期订阅。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.