X

Magento: Как расшифровать креды API PayPal

Столкнулся с тем, что потребовалось настроить на локале такой же конфиг как на одном из серверов. Все заработало, кроме sandbox-а PayPal-а. К сожалению, необходимых кредов у меня не было. В админке они скрыты, а в базе они были зашифрованы таким образом, что простой перенос значений не помогал..

Найти эти значения в базе можно выполнив такой запрос

SELECT * FROM core_config_data WHERE path LIKE '%paypal/wpp%'

config_id|scope  |scope_id|path                         |value                                                                 |
---------|-------|--------|-----------------------------|----------------------------------------------------------------------|
      272|default|       0|paypal/wpp/api_authentication|0                                                                     |
      273|default|       0|paypal/wpp/api_username      |0:2:8d1c3ddf7fca1a9b:F8mDXdycZ0QtRt6EiuTWqKOU=                        |
      274|default|       0|paypal/wpp/api_password      |0:2:e1200a9a9a3023f7:0MmlRBrODB/Z3w==                                 |
      275|default|       0|paypal/wpp/api_signature     |0:2:cdcdc18dac552d6c:RUAK8qVlwGBnDQyo2aWzmAcSNCapcbJ7puUCY48y5Dg06pA==|
      276|default|       0|paypal/wpp/sandbox_flag      |1                                                                     |
      277|default|       0|paypal/wpp/use_proxy         |0                                                                     |
      297|default|       0|paypal/wpp/button_flavor     |dynamic                                                               |

Нас интересуют поля

  • paypal/wpp/api_username
  • paypal/wpp/api_password
  • paypal/wpp/api_signature

Magento 1

Чтобы получить их исходные значения в Magento 1 используем такой скрипт, который надо расположить в корне сайта: /decrypt-paypal.php

<?php
require_once("app/Mage.php");

$store = Mage::app()->getStore(Mage::app()->getStore()->getStoreId());
$username = Mage::getStoreConfig('paypal/wpp/api_username',$store);
$password = Mage::getStoreConfig('paypal/wpp/api_password',$store);
$signature = Mage::getStoreConfig('paypal/wpp/api_signature',$store);

print_r([
    'username' => $username,
    'password' => $password,
    'signature' => $signature,
]);

После чего выполнить из консоли вот так

php decrypt-paypal.php

Не забудьте удалить его, после того как получите нужные данные

Magento 2

В Magento 2 можно ничего не писать, а воспользоваться утилитой n98-magerun2 найти которую можно тут: https://github.com/netz98/n98-magerun2

php ./n98-magerun2.phar config:store:get --decrypt paypal/wpp/api_username
php ./n98-magerun2.phar config:store:get --decrypt paypal/wpp/api_password
php ./n98-magerun2.phar config:store:get --decrypt paypal/wpp/api_signature

Категории: Magento
Тэги: magentopaypal