Android adyen checkout:如何加密卡数据?
在从前端收集用户输入之后,我正在使用github的adyen android cse项目用java代码测试后端。但是除了需要公钥并生成加密字符串的Android adyen checkout:如何加密卡数据?,android,adyen,Android,Adyen,在从前端收集用户输入之后,我正在使用github的adyen android cse项目用java代码测试后端。但是除了需要公钥并生成加密字符串的card.serialize()之外,我没有看到任何合适的方法。Card类具有encrypt方法,但该方法是私有的,因此仅适用于Card.serialize()方法 但我想继续结帐。对于结帐,有一个paymentsRequest.addCardData()方法需要卡片信息,我可以在从用户收集这些信息时提供这些信息,但我会得到安全异常。另一个选项paym
card.serialize()
之外,我没有看到任何合适的方法。Card类具有encrypt方法,但该方法是私有的,因此仅适用于Card.serialize()
方法
但我想继续结帐。对于结帐,有一个paymentsRequest.addCardData()
方法需要卡片信息,我可以在从用户收集这些信息时提供这些信息,但我会得到安全异常。另一个选项paymentsRequest.addEncryptedCardData()
需要加密的卡数据,但我不知道如何获取这些加密字段。给出测试信息将产生NativeCrypto\u SSL\u get\u 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);
} ...
嗯,很难低估这里的问题是什么。据我所知,CSE库存在一个问题,因此您需要一个公钥。除了CSE,您使用哪个Adyen库?我没有使用其他库来加密数据,只有CSE。在gradle依赖项上,我添加了多个adyen依赖项。CSE提供了
card.serialize()
方法。我想使用最低要求的测试信息进行签出。好的,请您尝试使用com.adyen。签出:cse:3.6.1
,并查看此文件以了解如何使用它的示例