From 3d16e10b60aa26fd6949503ee538282c38d5ec4f Mon Sep 17 00:00:00 2001 From: Anurag Phadnis Date: Fri, 7 May 2021 14:29:42 +0530 Subject: [PATCH] Added support to collect billing address in stripe --- .../billing/plugin/stripe/StripeCheckoutServlet.java | 6 ++++-- .../billing/plugin/stripe/StripePaymentPluginApi.java | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/killbill/billing/plugin/stripe/StripeCheckoutServlet.java b/src/main/java/org/killbill/billing/plugin/stripe/StripeCheckoutServlet.java index f50c137..e2ed39a 100644 --- a/src/main/java/org/killbill/billing/plugin/stripe/StripeCheckoutServlet.java +++ b/src/main/java/org/killbill/billing/plugin/stripe/StripeCheckoutServlet.java @@ -65,14 +65,16 @@ public Result createSession(@Named("kbAccountId") final UUID kbAccountId, @Named("cancelUrl") final Optional cancelUrl, @Named("kbInvoiceId") final Optional kbInvoiceId, @Named("paymentMethodTypes") final Optional> paymentMethodTypes, - @Local @Named("killbill_tenant") final Tenant tenant) throws JsonProcessingException, PaymentPluginApiException { + @Local @Named("killbill_tenant") final Tenant tenant, + @Named("billingAddressCollection") final Optional billingAddressCollection) throws JsonProcessingException, PaymentPluginApiException { final CallContext context = new PluginCallContext(StripeActivator.PLUGIN_NAME, clock.getClock().getUTCNow(), kbAccountId, tenant.getId()); final ImmutableList customFields = ImmutableList.of( new PluginProperty("kb_account_id", kbAccountId.toString(), false), new PluginProperty("kb_invoice_id", kbInvoiceId.orElse(null), false), new PluginProperty("success_url", successUrl.orElse("https://example.com/success?sessionId={CHECKOUT_SESSION_ID}"), false), new PluginProperty("cancel_url", cancelUrl.orElse("https://example.com/cancel"), false), - new PluginProperty("payment_method_types", paymentMethodTypes.orElse(null), false)); + new PluginProperty("payment_method_types", paymentMethodTypes.orElse(null), false), + new PluginProperty("billing_address_collection", billingAddressCollection.orElse("auto"), false)); final HostedPaymentPageFormDescriptor hostedPaymentPageFormDescriptor = stripePaymentPluginApi.buildFormDescriptor(kbAccountId, customFields, ImmutableList.of(), diff --git a/src/main/java/org/killbill/billing/plugin/stripe/StripePaymentPluginApi.java b/src/main/java/org/killbill/billing/plugin/stripe/StripePaymentPluginApi.java index c1baae1..47f09c2 100644 --- a/src/main/java/org/killbill/billing/plugin/stripe/StripePaymentPluginApi.java +++ b/src/main/java/org/killbill/billing/plugin/stripe/StripePaymentPluginApi.java @@ -701,6 +701,7 @@ public HostedPaymentPageFormDescriptor buildFormDescriptor(final UUID kbAccountI params.put("mode", "setup"); params.put("success_url", PluginProperties.getValue("success_url", "https://example.com/success?sessionId={CHECKOUT_SESSION_ID}", customFields)); params.put("cancel_url", PluginProperties.getValue("cancel_url", "https://example.com/cancel", customFields)); + params.put("billing_address_collection", PluginProperties.getValue("billing_address_collection", "auto", customFields)); final StripeConfigProperties stripeConfigProperties = stripeConfigPropertiesConfigurationHandler.getConfigurable(context.getTenantId()); try {