Здравствуйте.
Помогите подключить метод оплаты платежной системы в Commerce.
Код для интеграции:
Для взаимодействия сайта поставщика и интерфейса оплаты необходимо передать следующие параметры c помощью hidden полей.
MNT_USER_ID
MNT_SERVICE_ID
MNT_TRANS_ID
MNT_TRANS_AMOUNT
MNT_TRANS_NOTE
MNT_USER_PHONE
MNT_USER_EMAIL
SIGN_TIME
SIGN_STRING
MNT_TRANS_NOTE_BASE64
Параметр SIGN_STRING формируется по алгоритму, который приведен ниже:
Пример формирования MNT_TRANS_NOTE_BASE64 и SIGN_STRING (PHP Код):
<?php<?
$secret = "XXXXX"; //Нужно заменить параметры на полученные
$date = date("Y-m-d h:i:s");
$mntID = 30; //Нужно заменить параметр на полученный ID
$mntUserID = 5;
$serviceID = 22; $transID = "user23151";
$transAmount = number_format(1000, 2, '.', '');
$signString = md5 ($date. $secret. $serviceID. $transID. $transAmount);
//Список товаров из корзины (для интернет-магазинов)
$data = array(
"foods" => array(
"0" => array(
"name" => "Товар 1",
"count" => 2,
"price" => 12000
),
"1" => array(
"name" => "Товар 2",
"count" => 1,
"price" => 7000
)
),
"client" => array(
"name" => "John Doe",
"phone" => "9989XYYYYXXYY",
"address" => "Адрес доставки сюда"
)
);
$encoded = base64_encode(serialize($data));
$HTML = <<<CODE
<form action="https://my.pay.com/pay/" id=”pay_form” method="post" target="_blank">
<input id=”pay_amount_field” type="hidden" name="MNT_TRANS_AMOUNT" value="$transAmount" class=”pay_input” />
<input type="hidden" name="MNT_ID" value="$mntID"/>
<input type="hidden" name="MNT_USER_ID" value="$mntUserID"/>
<input type="hidden" name="MNT_SERVICE_ID" value="$serviceID"/>
<input type="hidden" name="MNT_TRANS_ID" value="$transID"/>
<input type="hidden" name="MNT_TRANS_NOTE" value="Оплата"/>
<input type="hidden" name="MNT_USER_PHONE" value="77777777777"/>
<input type="hidden" name="MNT_USER_EMAIL" value="mail@server.com"/>
<input type="hidden" name="SIGN_TIME" value="$date"/>
<input type="hidden" name="SIGN_STRING" value="$signString"/>
<input type="hidden" name="MNT_TRANS_NOTE_BASE64" value="$encoded"/>
<button class=”pay_logo"><i></i>Оплатить</button>
</form>
<div id="pay_button" class="field" style="display: none;">
<button typo="submit" class="pay_logo"><i></i>Оплатить</button>
</div>
CODE;
?>
Пример конечного HTML кода:
<input id="pay_amount_field" type="hidden" name="MNT_TRANS_AMOUNT" value="1000" class="pay_input" />
<input type="hidden" name="MNT_ID" value="46"/>
<input type="hidden" name="MNT_USER_ID" value="4"/>
<input type="hidden" name="MNT_SERVICE_ID" value="36"/>
<input type="hidden" name="MNT_TRANS_ID" value="user23151"/>
<input type="hidden" name="MNT_TRANS_NOTE" value="Оплата за услуги"/>
<input type="hidden" name="MNT_USER_PHONE" value="777777777777"/>
<input type="hidden" name="MNT_USER_EMAIL" value="mail@server.com"/>
<input type="hidden" name="SIGN_TIME" value="2013-01-25 12:54:36"/>
<input type="hidden" name="SIGN_STRING" value="8bf8051adc7bf25c75e939f04"/>
<input type="hidden" name="MNT_TRANS_NOTE_BASE64" value="JGRhdGEgPSBhcnJheSgNCgkiZm9KA0KCQkiMCIgPT4gYXJyQoJCQkibmFQoJCQkiY291bnQiID0+IDIsDQoJCQkicHJpY2UiID0+IDEyMDAwDQoJCSksDQoJCSIxIiA9PiBhcnJheSgNCgkJCSJuYW1LQvtCy0LDRgSIgPT4gNzAwMA0KCQkpDQoJKQ0KKTs="/>
<button class="pay_logo"><i></i>Оплатить</button>
</form>
<div id="pay_button" class="field" style="display: none;">
<button typo="submit" class="pay_logo"><i></i>Оплатить</button>
</div>
Комментарии
hook_commerce_payment_method_info()
Да. Но а как получить дату?
Текущую дату?
<?php $form["MNT_DATE"] = array('#type' => 'hidden', '#value' => ..... ?>