如何在处理支付时获取Adyen加密数据

问题描述 投票:0回答:1

如何从$_POST['加密数据']获取以下数据

加密卡号

到期月份

到期年份

加密安全代码

我传递了一个输入“加密数据”,但我想要 加密卡号 ,到期月份 ,到期年份 ,加密安全代码

客户端


<script type="text/javascript" src="https://test.adyen.com/hpp/cse/js/HWC324534556545.shtml"></script>

  <form method="POST" action="payment.php" id="adyen-encrypted-form">
    <input placeholder="number" type="text" size="20" data-encrypted-name="number" value="2223520443560010" />
    <input placeholder="holderName" type="text" size="20" data-encrypted-name="holderName" value="Ashok" />
    <input placeholder="expiryMonth" type="text" size="2" data-encrypted-name="expiryMonth" value="10" />
    <input placeholder="expiryYear" type="text" size="4" data-encrypted-name="expiryYear" value="2024" />
    <input placeholder="cvc" type="text" size="4" data-encrypted-name="cvc" value="737" />
    <input type="hidden" value="<?php echo date('Y-m-d\TH:i:sP'); ?>" data-encrypted-name="generationtime"/>
    <input type="submit" value="Pay"/>
 </form>

<script>
    // The form element to encrypt.
    var form = document.getElementById('adyen-encrypted-form');

    var options = {};
    // Bind encryption options to the form.

    options.name = "encrypted-data";
    options.onsubmit = function(e) {
        e.preventDefault();
        form.submit();  
    };

 var key = "MY Key";
var result = adyen.encrypt.createEncryptedForm(form, key, options);
</script>

处理付款 payment.php

<?php
//echo $_POST['encrypted-data'];

require_once 'vendor/autoload.php';
$client = new \Adyen\Client();

$client->setXApiKey("my api key");
$client->setEnvironment(\Adyen\Environment::TEST);
$client->setTimeout(30);
$service = new \Adyen\Service\Checkout\PaymentsApi($client);

$requestOptions['idempotencyKey'] = "c3276329-1bb1-47dc-a19a-5cc87f79de11";
// Create a PaymentMethod object.
$paymentMethod = new \Adyen\Model\Checkout\CheckoutPaymentMethod();
$paymentMethod
    ->setType("scheme")
    ->setEncryptedCardNumber("test_4111111111111111")
    ->setEncryptedExpiryMonth("test_03")
    ->setEncryptedExpiryYear("test_2030")
    ->setEncryptedSecurityCode("test_737");

// Create an Amount object.
$amount = new \Adyen\Model\Checkout\Amount();
$amount
    ->setValue(10)
    ->setCurrency("EUR");

// Create the PaymentRequest object.
$paymentRequest = new \Adyen\Model\Checkout\PaymentRequest();
$paymentRequest
    ->setMerchantAccount("myMerchantAccountCOM")
    ->setPaymentMethod($paymentMethod)
    ->setAmount($amount)
    ->setReference("payment-test")
    ->setReturnUrl("");

// Make a /payments request.
$result = $service->payments($paymentRequest, $requestOptions);
//$pspReference = $result.pspReference;

如何替换此示例数据

test_4111111111111111

测试_03

测试_2030

测试_737

与客户端输入的加密数据

谢谢

payment-gateway adyen
1个回答
0
投票

使用 Adyen 进行卡付款时,您有 2 个选择。

使用 Adyen 客户端解决方案安全地收集和加密卡信息。您可以在 adyen-examples GitHub 存储库中找到 PHP 示例。
在上面的示例中,您将在客户端集成 Dropin。

通过发送原始(未加密)卡信息进行付款:在这种情况下,您需要完全PCI 合规
在上面的示例中,您将使用购物者输入的信息填写表单中的数据。

© www.soinside.com 2019 - 2024. All rights reserved.