Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/main/java/io/craftgate/Craftgate.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public class Craftgate {
private final MerchantApmAdapter merchantApmAdapter;
private final JuzdanPaymentAdapter juzdanPaymentAdapter;
private final BkmExpressPaymentAdapter bkmExpressPaymentAdapter;
private final MealVoucherCardTokenizationAdapter mealVoucherCardTokenizationAdapter;


public Craftgate(String apiKey, String secretKey) {
Expand Down Expand Up @@ -61,6 +62,7 @@ public Craftgate(String apiKey, String secretKey, String baseUrl, String languag
this.merchantApmAdapter = new MerchantApmAdapter(requestOptions);
this.juzdanPaymentAdapter = new JuzdanPaymentAdapter(requestOptions);
this.bkmExpressPaymentAdapter = new BkmExpressPaymentAdapter(requestOptions);
this.mealVoucherCardTokenizationAdapter = new MealVoucherCardTokenizationAdapter(requestOptions);
}

public PaymentAdapter payment() {
Expand Down Expand Up @@ -134,4 +136,8 @@ public JuzdanPaymentAdapter juzdan() {
public BkmExpressPaymentAdapter bkmExpressPaymentAdapter() {
return bkmExpressPaymentAdapter;
}

public MealVoucherCardTokenizationAdapter mealVoucherCardTokenizationAdapter() {
return mealVoucherCardTokenizationAdapter;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package io.craftgate.adapter;

import io.craftgate.net.HttpClient;
import io.craftgate.request.MealVoucherCardTokenizationInitRequest;
import io.craftgate.request.common.RequestOptions;
import io.craftgate.response.MealVoucherCardTokenizationInitResponse;

public class MealVoucherCardTokenizationAdapter extends BaseAdapter {

public MealVoucherCardTokenizationAdapter(RequestOptions requestOptions) {
super(requestOptions);
}

public MealVoucherCardTokenizationInitResponse cardTokenizationInit(MealVoucherCardTokenizationInitRequest mealVoucherCardTokenizationInitRequest) {
String path = "/payment/v1/meal-voucher/card-tokenizations/init";
return HttpClient.post(requestOptions.getBaseUrl() + path, createHeaders(mealVoucherCardTokenizationInitRequest, path, requestOptions),
mealVoucherCardTokenizationInitRequest, MealVoucherCardTokenizationInitResponse.class);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package io.craftgate.request;

import io.craftgate.model.ApmType;
import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class MealVoucherCardTokenizationInitRequest {

private ApmType apmType;
private String mealVoucherIdentifier;
private String callbackUrl;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package io.craftgate.response;

import io.craftgate.model.AdditionalAction;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class MealVoucherCardTokenizationInitResponse {

private AdditionalAction additionalAction;
private String sessionId;
private String htmlContent;
private String redirectUrl;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package io.craftgate.sample;

import io.craftgate.Craftgate;
import io.craftgate.model.ApmType;
import io.craftgate.request.MealVoucherCardTokenizationInitRequest;
import io.craftgate.response.MealVoucherCardTokenizationInitResponse;
import org.junit.jupiter.api.Test;

import java.util.UUID;

import static org.junit.jupiter.api.Assertions.assertNotNull;

public class MealVoucherCardTokenizationSample {

private final Craftgate craftgate = new Craftgate("api-key", "secret-key", "https://sandbox-api.craftgate.io");

@Test
void init_meal_voucher_card_tokenization() {
MealVoucherCardTokenizationInitRequest request = MealVoucherCardTokenizationInitRequest.builder()
.apmType(ApmType.SETCARD)
.mealVoucherIdentifier(UUID.randomUUID().toString())
.callbackUrl("https://www.your-website.com/craftgate-mealvoucher-card-tokenization-callback")
.build();

MealVoucherCardTokenizationInitResponse response = craftgate.mealVoucherCardTokenizationAdapter().cardTokenizationInit(request);

assertNotNull(response.getHtmlContent());
assertNotNull(response.getSessionId());
assertNotNull(response.getRedirectUrl());
assertNotNull(response.getAdditionalAction());
}
}
Loading