Xsolla SDK

An official PHP SDK for interacting with Xsolla HTTP API. Xsolla is the authorized reseller and merchant providing e-commerce services for online games.

License

License

GroupId

GroupId

com.xsolla
ArtifactId

ArtifactId

sdk
Last Version

Last Version

1.0.1
Release Date

Release Date

Type

Type

jar
Description

Description

Xsolla SDK
An official PHP SDK for interacting with Xsolla HTTP API. Xsolla is the authorized reseller and merchant providing e-commerce services for online games.

Download sdk

How to add to project

<!-- https://jarcasting.com/artifacts/com.xsolla/sdk/ -->
<dependency>
    <groupId>com.xsolla</groupId>
    <artifactId>sdk</artifactId>
    <version>1.0.1</version>
</dependency>
// https://jarcasting.com/artifacts/com.xsolla/sdk/
implementation 'com.xsolla:sdk:1.0.1'
// https://jarcasting.com/artifacts/com.xsolla/sdk/
implementation ("com.xsolla:sdk:1.0.1")
'com.xsolla:sdk:jar:1.0.1'
<dependency org="com.xsolla" name="sdk" rev="1.0.1">
  <artifact name="sdk" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.xsolla', module='sdk', version='1.0.1')
)
libraryDependencies += "com.xsolla" % "sdk" % "1.0.1"
[com.xsolla/sdk "1.0.1"]

Dependencies

compile (8)

Group / Artifact Type Version
commons-net : commons-net jar 2.2
org.apache.commons : commons-lang3 jar 3.2.1
org.apache.commons : commons-exec jar 1.2
commons-collections : commons-collections jar 3.2.1
com.ning : async-http-client jar 1.7.22
com.googlecode.json-simple : json-simple jar 1.1
org.mockito : mockito-all jar 1.9.5
org.slf4j : slf4j-nop jar 1.7.6

provided (2)

Group / Artifact Type Version
javax : javaee-web-api jar 6.0
javax.servlet : javax.servlet-api jar 3.0.1

test (3)

Group / Artifact Type Version
junit : junit jar 4.11
com.tngtech.java : junit-dataprovider jar 1.5.0
xmlunit : xmlunit jar 1.5

Project Modules

There are no modules declared in this project.

[DEPRECATED] Xsolla SDK for Java

Build Status

An official SDK for interacting with Xsolla API

Requirements

  • JDK 1.7
  • Maven 3

Installation

Add to your pom.xml:

<dependency>
    <groupId>com.xsolla</groupId>
    <artifactId>sdk</artifactId>
    <version>1.0.1</version>
</dependency>

Usage

Generate URL to Payment Page

import com.xsolla.sdk.Invoice;
import com.xsolla.sdk.Project;
import com.xsolla.sdk.User;
import com.xsolla.sdk.paymentpage.UrlBuilderFactory;
import java.math.BigDecimal;
import java.security.NoSuchAlgorithmException;

public class PaymentPage {

    public static void main(String[] args){
        User user = new User("username")
                .setEmail("example@example.com")
                .setPhone("79000000000");
        Project project = new Project(
                4783, // demo project id
                "key" // demo project secret key
        );
        Invoice invoice = new Invoice()
                .setVirtualCurrencyAmount(new BigDecimal(10));

        UrlBuilderFactory urlBuilderFactory = new UrlBuilderFactory(project);
        try {
            String url = urlBuilderFactory.getCreditCards()
                    .setInvoice(invoice)
                    .setUser(user)
                    .setCountry("US")
                    .setLocale("fr")
                    .setParameter("description", "Purchase description")
                    .getUrl();
            System.out.println("URL to PayStation payment page: " + url);

        } catch (NoSuchAlgorithmException e) {
            System.out.print("The problem of creating a signature. No MD5 algorithm in your Java environment.");
        }
    }
}

Receive Instant Payment Notification

For receiving IPN requests you should implement storage interfaces. Also you can setup sql tables samples/ipn_standard/src/mysql.

Sample Servlet IPN handler for Standard Protocol:

package com.xsolla.samples.ipn.standard;

import com.xsolla.samples.ipn.standard.storage.JdbcPaymentStandardStorage;
import com.xsolla.samples.ipn.standard.storage.JdbcUserStorage;
import com.xsolla.sdk.Project;
import com.xsolla.sdk.protocol.ProtocolFactory;
import com.xsolla.sdk.protocol.StandardProtocol;
import com.xsolla.sdk.protocol.http.ServletHttpAdapter;
import com.xsolla.sdk.protocol.request.Request;
import com.xsolla.sdk.protocol.response.Response;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;

public class StandardServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        super.doPost(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        final int PROJECT_ID = 4783;
        final String PROJECT_KEY = "key";

        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection connection = DriverManager.getConnection("jdbc:mysql://DB_HOST/DB_NAME", "DB_USER", "DB_PASSWORD");

            ServletHttpAdapter servletHttpAdapter = new ServletHttpAdapter(request, response);

            Request xsollaRequest = servletHttpAdapter.getRequest();
            Project project = new Project(PROJECT_ID, PROJECT_KEY);

            JdbcUserStorage userStorage = new JdbcUserStorage(connection);
            JdbcPaymentStandardStorage paymentStorage = new JdbcPaymentStandardStorage(connection);

            ProtocolFactory protocolFactory = new ProtocolFactory(project);
            StandardProtocol standardProtocol = protocolFactory.getStandardProtocol(userStorage, paymentStorage);
            Response xsollaResponse = standardProtocol.run(xsollaRequest);

            servletHttpAdapter.sendResponse(xsollaResponse);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

IpChecker - additional security level for situations when your secret key is compromised. It's a optional parameter for ProtocolFactory and you can skip it for development and testing environment.

If your WEB server software does not support JavaEE Servlets, you should implement IHttpAdapter.

Samples

All samples you can find in samples folder.

Additional resources

com.xsolla

Xsolla

Xsolla is the gaming industry hub built by players to bring out gaming's best.

Versions

Version
1.0.1
1.0.0
0.6.0