После сбора пользовательских входных данных от внешнего интерфейса я тестирую бэкэнд с кодом java, используя проект adyen android cse из github. Но я не вижу другого подходящего метода, кроме card.serialize()
, который требует ключа publi c и генерирует зашифрованную строку. Класс карты имеет метод шифрования, но он является закрытым, поэтому работает только с методом card.serialize()
.
Но я хочу приступить к оформлению заказа. Для проверки есть метод paymentsRequest.addCardData()
, который требует информацию о карте, которую я могу предоставить как сбор этой информации от пользователя, но я получу исключение безопасности. Другой вариант paymentsRequest.addEncryptedCardData()
требует данных зашифрованной карты, но я не знаю, как получить эти зашифрованные поля. Предоставление тестовой информации приведет к исключению NativeCrypto_SSL_get_certificate => NULL
. Все, что я получаю от проекта cse - это зашифрованная строка.
Итак, как успешно оформить заказ, используя Java коды?
код для оформления заказа:
void make_payment(Card card) {
// Set your X-API-KEY with the API key from the Customer Area.
Client client = new Client(xApiKey, Environment.TEST);
final Checkout checkout = new Checkout(client);
final PaymentsRequest paymentsRequest = new PaymentsRequest();
paymentsRequest.setMerchantAccount(YOUR_MERCHANT_ACCOUNT);
Amount amount = new Amount();
amount.setCurrency("EUR");
amount.setValue(100L);
paymentsRequest.setAmount(amount);
/*String encryptedCardNumber = "adyenjs_0_1_18$...encryptedCardNumber";
String encryptedExpiryMonth = "adyenjs_0_1_18$...encryptedExpiryMonth";
String encryptedExpiryYear = "adyenjs_0_1_18$...encryptedExpiryYear";
String encryptedSecurityCode = "adyenjs_0_1_18$...encryptedSecurityCode";
*/
paymentsRequest.setReference("Your_order_number1");
paymentsRequest.addCardData(card.getNumber(),
card.getExpiryMonth(), card.getExpiryYear(), card.getCvc(), card.getCardHolderName());
paymentsRequest.setReturnUrl("my-app://.Activity");
PaymentsResponse paymentsResponse = null;
try {
paymentsResponse = checkout.payments(paymentsRequest);
} ...