Не могу сгенерировать подпись для способа оплаты на Magento 1.9.x - PullRequest
0 голосов
/ 31 августа 2018

Я пишу плагин для magento 1.9.x для одной системы, но метод не работает, потому что я не могу сгенерировать поле - подпись У меня есть файл со знаком Вот код для получения этого ключа. Как поместить этот ключ в массив в поле Signature

self::FIELD_NAME_SIGNATURE => '1233sdb',
.
$pemFile = Mage::getBaseDir('app/code/community/Voronoy/Paymaster/Model') .'/keys/'.$merchantID.'.pem';
$fp = fopen($pemFile, "r");

$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);
openssl_sign( $data , $signature, $pkeyid);
openssl_free_key($pkeyid);
$b64sign = base64_encode($signature) ;

и тогда у меня есть класс

class Voronoy_Paymaster_Model_Request extends Varien_Object
{

const FIELD_NAME_MERCHANT_ID = 'MerchantID';
const FIELD_NAME_MERCHANT_SECRET_KEY = 'TerminalID';
const FIELD_NAME_PAYMENT_AMOUNT = 'TotalAmount';
const FIELD_NAME_PAYMENT_TIME = 'Time';
const FIELD_NAME_PAYMENT_NO = 'OrderID';
const FIELD_NAME_PAYMENT_CURRENCY = 'Currency';
const FIELD_NAME_SESSION = 'SD';
const FIELD_NAME_PAYMENT_DESC = 'PurchaseDesc';
const FIELD_NAME_SIGNATURE = 'Signature';
const FIELD_NAME_PAYMENT_SYSTEM = 'ECC';



/**
 * Order.
 *
 * @var Mage_Sales_Model_Order
 */
protected $_order;

/**
 * Paymaster Config.
 *
 * @var Voronoy_Paymaster_Model_Config
 */
protected $_config;

/**
 * Get Payment Method.
 *
 * @var Voronoy_Paymaster_Model_Method_Abstract
 */
protected $_paymentMethod;

/**
 * Prepare Redirect Form Request.
 */
public function prepareRequest()
{

    $requestData = array(
        self::FIELD_NAME_MERCHANT_ID => $this->getConfig()->getMerchantId(),
        self::FIELD_NAME_MERCHANT_SECRET_KEY => $this->getConfig()->getMerchantSecretKey(),
        self::FIELD_NAME_PAYMENT_AMOUNT => sprintf('%0.2f', $this->getOrder()->getBaseTotalDue())*100,
        self::FIELD_NAME_PAYMENT_CURRENCY=> '980',
        self::FIELD_NAME_SESSION => 'aa',
        self::FIELD_NAME_PAYMENT_NO => $this->getOrder()->getIncrementId(),
        self::FIELD_NAME_PAYMENT_TIME => date('ymdHis'),
        self::FIELD_NAME_SIGNATURE => '',

    );
...