Нужно переписать этот код с ANYPAY на Qiwi p2p:
code
<?php
class AnyPay {
/**
* @return string
*/
function getName(){
return 'Платежная система AnyPay';
}
/**
* Обработка запроса от этой платежной системы
* @param string address
* @param array $array
* @return void
*/
function handlePayment($address, $array){
$merchant = getMerchantINFO();
$project_id = $merchant['shop'];
$status = 'paid';
$secret_key = $merchant['key'];
$arr_ip = array(
'185.162.128.38',
'185.162.128.39',
'185.162.128.88'
);
$arr_sign = array(
$array['currency'],
$array['amount'],
$array['pay_id'],
$project_id,
$status,
$secret_key
);
$sign = hash('sha256', implode(":", $arr_sign));
if (!in_array($address, $arr_ip)) {
return false;
}
if($array['currency'] != 'RUB'){
return false;
}
if ($sign != $array['sign']) {
return false;
}
$order = getOrder($array['pay_id']);
if($order === false){
return false;
}
if($order['price'] != $array['amount']){
return false;
}
$group = new GrantGroup(getOrder($array['pay_id']));
$group->grant();
echo 'OK';
return true;
}
/**
* Обработка редиректа (создание платежа)
* @param array $data
* @return void
*/
function handleRedirect($server, $nickname, $group, $isCurrency, $currency, $price){
try {
$merchant = getMerchantINFO();
$project_id = $merchant['shop'];
$pay_id = getOrder(false, $server, $nickname, $group, $currency, $price);
$amount = (float) $price;
$currency = 'RUB';
$secret_key = $merchant['key'];
$arr_sign = array(
$project_id,
$pay_id,
$amount,
$currency,
$secret_key
);
$sign = hash('sha256', implode(':', $arr_sign));
$url = getPaymentSystems()[$this->getName()]['url'];
return "{$url}?merchant_id={$project_id}&pay_id={$pay_id}&amount={$amount}¤cy={$currency}&sign={$sign}";
} catch (\Throwable $e){
return 2;
}
}
}