1. Идем в \bff\modules\bills\base.php
Добовляем
const PS_PRIVAT24= 32; # PRIVAT24
Тут же
self::PS_PRIVAT24 => array('id' => self::PS_PRIVAT24,'title' => 'Приват24', 'key' => 'privat24', 'desc' => ''),
2. Идем в \bff\modules\bills\frontend.php
Добвляем
protected function privat24_request()
{
$this->log('privat24: ѕроверка платежа');
$payment = ( ! empty($_POST['payment']) ? $_POST['payment'] : '');
$signature = ( ! empty($_POST['signature']) ? $_POST['signature'] : '');
$pass = config::sys('bills.privat24.password');
$crc = sha1(md5($payment.$pass));
if ($crc != $signature) {
$this->log('privat24: неверна€ контрольна€ сумма "'.$crc.'" !== "'.$signature);
return $this->payError('crc_error');
}
$this->log('privat24: проверка контрольной суммы пройдена "'.$crc.'" == "'.$signature);
parse_str($payment, $aPayment);
$InvId=0;
$OutSum=0;
if (empty($aPayment['amt']) || empty($aPayment['order'])) {
$this->log('privat24: Ќекорректный номер счета, (#'.$aPayment['order'].') amt='.$aPayment['amt']);
$this->payError('wrong_bill_id');
} else {
$InvId=$aPayment['order'];
$OutSum=$aPayment['amt'];
}
$mResult = $this->processBill($InvId, $OutSum, self::PS_PRIVAT24);
if ($mResult === true) {
$this->log('privat24: ѕлатежка зачислена');
$this->redirect( static::url('success') );
} else {
$this->log('privat24: ќшибка платежки');
return $mResult;
}
$this->redirect( static::url('fail') );
exit;
}
3. Идем в \bff\modules\bills\tpl\def\pay.request.form.php
Добавляем
# Privat24 (https://api.privatbank.ua/article/4/)
case Bills::PS_PRIVAT24:
{
echo '<form action="https://api.privatbank.ua/p24api/ishop" method="POST">
<input type="hidden" name="amt" value="'.$amount.'"/>
<input type="hidden" name="ccy" value="UAH" />
<input type="hidden" name="merchant" value="'.$privat24_merchantid.'" />
<input type="hidden" name="order" value="'.$bill_id.'" />
<input type="hidden" name="details" value="'.$bill_description.'" />
<input type="hidden" name="ext_details" value="" />
<input type="hidden" name="pay_way" value="privat24" />
<input type="hidden" name="return_url" value="'.Bills::url('my.history').'" />
<input type="hidden" name="server_url" value="http://свой_сайт.ру/bill/process/privat24" />
</form>';
} break;
4. Идем в \config\sys.php
Добавляем
'bills.privat24.merchantid' => 'тут ваш айди мерчанта',
'bills.privat24.password' => 'тут пароль вашего мерчанта',
5. Идем в \modules\bills\bills.bl.class.php
Добавляем
self::PS_PRIVAT24,
Тут же
'privat24' => array(
'id' => self::PS_PRIVAT24,
'way' => 'privat24',
'logo_desktop' => $logoUrl . 'privat24.png',
'logo_phone' => $logoUrl . 'privat24.png',
'title' => _t('bills', 'ѕриват24'),
'currency_id' => 1, # тут айди валюты 1=грн, 2=рубли (айди смотрите в админке-валюта)
),
6. Идете в \img\ps
И добавляете в папку картинку privat24.png или меняете на свою.