Я пишу плагин для 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 => '',
);