# Integrate Giropay
Giropay (opens new window) is an online banking payment method based in Germany. It offers a real-time payment method to accept payments done using Euro seamlessly.
This tutorial guides you to integrate Giropay payments on your website using Chargebee.js and create a subscription after the user checks out.
Currently, Chargebee JS supports the below payment gateways for Giropay:
Note:
This feature is currently available for Private Beta Testing. Contact support to enable Giropay to use the Adyen gateway for your site.
# Gateway prerequisites
- Enable Adyen gateway for using Giropay. Learn more. (opens new window)
# Setting up Chargebee JS
# Inserting chargebee.js script in your application
Include the following script in your HTML page. You need to do this only once per page.
<script src="https://js.chargebee.com/v2/chargebee.js"></script>
# Initializing a Chargebee instance
Inside your JavaScript code, initialize chargebee with the publishable key (opens new window) once the page is loaded and get 'chargebee instance' object. This object is used further to create components.
Example:
var cbInstance = Chargebee.init({
site: "site-name", // your test site
domain: "https://mybilling.acme.com" // this is an optional parameter.
publishableKey: "test__"
})
2
3
4
5
Learn more about initializing a Chargebee instance.
# Create a Payment Intent
You should create a payment intent before submitting the form to authorize the payments.
payment_intent
performs the essential function of tracking different events involved in a transaction. This includes:
Automatically changing its status based on the outcome of authorization and capture events.
Automatically refunding in case of an error post-payment.
A payment_intent
can be created at your server-side using create a payment intent API (opens new window) and returned to the client side. The payment method handler uses the created payment_intent
internally to perform authorization.
Here's the sample code to create a payment_intent
.
TIP
This must be done from your backend to avoid exposing sensitive data.
Example:
- jQuery
- Curl
The above step should be initiated as a request from your front end.
Front end code:
function createPaymentIntent() {
return fetch('/payment-intents', {
method: 'POST',
body: JSON.stringify({
amount: 500,
currency_code: 'EUR',
payment_method_type: 'giropay'
})
}).then(function(response) {
return response.json();
}).then(function(responseJson) {
return responseJson.payment_intent;
});
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# Authorize payment intent
Follow these steps to integrate Giropay on your website.
# 1. Set up Giropay
Set up Giropay using the below step:
# a. Load Giropay integration.
load
Giropay integration using cbInstance.load("giropay")
.
# 2. Handle Payment
Use giropay
and payment_intent
as the input parameter to cbInstance.handlePayment()
function, as this enables the function to handle Giropay payments.
Note:
Currently, Chargebee JS does not support payments via in-app browsers of Instagram, Facebook and Snapchat.
There are no mandatory inputs required to pass for Giropay integration. To see supported parameters that you can send for Giropay, refer below:
Example:
cbInstance.handlePayment("giropay", {
paymentIntent: () => {
// make Ajax call to server to create a payment intent
return createPaymentIntent();
},
});
2
3
4
5
6
Sample Code:
cbInstance.load("giropay").then(() => {
cbInstance.handlePayment("giropay", {
paymentIntent: () => {
return createPaymentIntent();
},
paymentInfo: {}
}).then(intent => {
// SUCCESS!!! payment_intent is authorised.
var response = fetch('/subscriptions', {
method: 'POST',
body: JSON.stringify({
paymentIntentId: intent.id,
plan_id: 'pro_plan',
plan_quantity: 1,
billingAddress: {
...
}, // provide billing address
customer: {
...
} // provide customer details if the subscription is to be created for an existing <code>customer</code> in Chargebee.
})
}).then(function(response) {
return response.json();
});
}).catch(err => {
// OOPS!!! payment_intent is not authorised.
});
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
On successful authorization, the payment_intent
turns authorized, and Chargebee redirects the user back to your website (payment authorization page).
# Create a subscription
Pass the ID of the successfully authorized payment_intent
to Chargebee’s create a subscription API (opens new window).
- Curl