alt

Important information

Please be advised that there will be a scheduled downtime across our API network on November 05 and November 07, 2024. For more information, visit our platform status portal.:
- Scheduled maintenance on November 5, 2024
- Scheduled maintenance on November 7, 2024

Unzer

Create Linkpay Page

Learn how to create and use Linkpay Page resource with Java SDK

Overview

To integrate Linkpay using Java, you must create a Linkpay object and initialize it in Payment API using the Unzer facade. As a result you receive a unique ID of the page and a redirectURL. Redirect customer URL to redirectUrl value to proceed a payment:

Initialize a Linkpay Page

A Linkpay Page needs at least amount, currency and action to be initialized. Optional parameter for the API request can be added to a Linkpay instance using the setter function of the given property as demonstrated in the example below.

For a complete list of request parameters, see the API reference.

package com.unzer.payment.integration.paymenttypes;

import com.unzer.payment.Linkpay;
import com.unzer.payment.Paypage;
import com.unzer.payment.Unzer;

import java.math.BigDecimal;
import java.net.URL;
import java.util.Currency;
import java.util.Map;

class Example {
  void run() throws Exception {
    Unzer unzer = new Unzer("s-priv-xxxxxxxxxx");

    Linkpay page = new Linkpay();

    // Set amount to be charged
    page.setAmount(BigDecimal.valueOf(100.0));

    // Choose between charge or authorize transaction type
    page.setAction(Paypage.Action.AUTHORIZE); // or Paypage.Action.CHARGE

    // Set optional parameters
    page.setCurrency(Currency.getInstance("EUR"));
    page.setReturnUrl(new URL("https://your.return.url"));
    page.setLogoImage("https://your.logo.image.url");
    page.setFullPageImage("https://your.logo.image.url");
    page.setShopName("My Test Shop");
    page.setShopDescription("We are selling goods.");
    page.setTagline("We are selling goods.");
    page.setOrderId("YourShopOrderId");
    page.setTermsAndConditionUrl(new URL("https://your.tac.url"));
    page.setPrivacyPolicyUrl(new URL("https://your.privacy.policy.url"));
    page.setImprintUrl(new URL("https://your.imprint.url"));
    page.setHelpUrl(new URL("https://your.help.url"));
    page.setContactUrl(new URL("https://your.contact.url"));
    page.setInvoiceId("YourShopInvoiceId");
    page.setCard3ds("true");

    // Add styling
    page.setCss(Map.of(
        "shopDescription", "color: purple",
        "header", "background-color: red",
        "helpUrl", "color: blue",
        "contactUrl", "color: green"
    ));

    // Send Linkpay Page to Unzer
    page = unzer.linkpay(page);

    // Provide redirect URL to customer.
    String redirectUrl = page.getRedirectUrl();

    // After customer submits the payment, they will be redirected to the returnUrl

    // Store paymentId to be able to fetch the payment later
    String paymentId = page.getPaymentId();
  }
}

Fetch Linkpay resource

Payment Gateway allows to retrieve existing Linkpay resource by ID.

package com.unzer.payment.integration.paymenttypes;

import com.unzer.payment.Linkpay;
import com.unzer.payment.Unzer;

class Example {
  void run() throws Exception {
    Unzer unzer = new Unzer("s-priv-xxxxxxxxxx");

    String pageId = "s-ppg-xxxxxxx";
    Linkpay page = unzer.fetchLinkpay(pageId);
  }
}

Exclude payment types

To exclude payment types from the Linkpay Page, pass a list of type names to Linkpay::setExcludeTypes during initialization.

package com.unzer.payment.integration.paymenttypes;

import com.unzer.payment.Linkpay;
import com.unzer.payment.Unzer;

class Example {
  void run() throws Exception {
    Unzer unzer = new Unzer("s-priv-xxxxxxxxxx");

    Linkpay page = new Linkpay();
    // ...

    // Exclude one
    page.setExcludeTypes(new String[]{"paypal"});
    // ...or several payment types
    page.setExcludeTypes(new String[]{"paypal", "card"});

    // ...
    // Initialize
    unzer.linkpay(page);
  }
}

Additional Attributes

In Java SDK, you can set additional attributes by calling the general setter for adding additional attributes.

See Linkpay documentation to learn more about Additional Attributes

package com.unzer.payment.integration.paymenttypes;

import com.unzer.payment.Linkpay;
import com.unzer.payment.Unzer;
import java.util.Map;

class Example {
  void run() throws Exception {
    Unzer unzer = new Unzer("s-priv-xxxxxxxxxx");

    // Create object
    Linkpay page = new Linkpay();
    //...

    // Set attributes
    // `setAdditionalAttributes` accepts only Map<String, String> as a parameter.
    // Attribute name and value must be of String type.
    page.setAdditionalAttributes(Map.of(
        "effectiveInterestRate", "4.99",
        "exemptionType", "lvp"
    ));

    // ...
  }
}

See also