Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
$operation_id = $_POST['operation_id'];
$sender = $_POST['sender'];
$amount = $_POST['amount'];
$datetime = $_POST['datetime'];
preg_match('/i(\d+);/', $resp->getMessage(), $m);
$invoice_id = $m[1];
$r=mysql_query("INSERT INTO it_payment_ym VALUES('$operation_id', '$sender', '$amount', '$datetime', '$invoice_id')");
src="https://money.yandex.ru/embed/shop.xml?uid=4100138353971&writer=seller&targets=i$i->id&default-sum=$sum&button-text=01&hint="
Как старый сионист фигурные скобки не признаю для одной строки if-else.
<?
require_once($_SERVER["DOCUMENT_ROOT"] . "/conf/config_db_ro_without_auth1.php");
require_once(dirname(__FILE__) . '/lib/YandexMoney.php');
require_once(dirname(__FILE__) . '/sample/consts.php');
class CProcessYandexMoney
{
private $_data = array();
private $_secretKey = null;
private $_token = null;
private $_clientId = null;
public function __construct($data, $secretKey, $token, $clientId)
{
$this->_setData($data);
$this->_setSecretKey($secretKey);
}
public function process()
{
//Application::getLogger()->logArray($this->getData());
return $this->_processPayment();
}
private function _processPayment()
{
$yandexMoneyAdapter = new YandexMoneyNew($this->getClientId());
$originData = $this->getData();
$processing = $yandexMoneyAdapter->operationDetail($this->getToken(), $originData['operation_id']);
if ($processing->isSuccess()) {
return true;
} else {
return false;
}
}
protected function _checkPaymentType()
{
$originData = $this->getData();
return $originData['codepro'] != 'false';
}
protected function _checkSignification()
{
$originData = $this->getData();
return $this->_createSignification() == $originData['sha1_hash'];
}
protected function _createSignification()
{
$originData = $this->getData();
$signData = array(
$originData['notification_type'],
$originData['operation_id'],
$originData['amount'],
$originData['currency'],
$originData['datetime'],
$originData['sender'],
$originData['codepro'],
$this->getSecretKey(),
$originData['label']
);
$signReqString = implode('&', $signData);
$sign = sha1($signReqString);
return $sign;
}
}
<?php
$mail_address = 'igor@itsoft.ru';
// send_notification_mail($mail_address, $_POST);
if (is_protected_payment($_POST)) {
send_protected_error_mail($mail_address, $_POST);
exit;
}
if (!is_correct_signature($_POST)) {
send_signature_error_mail($mail_address, $_POST);
exit;
}
//...
save_payment($_POST);
if($_POST['codepro']!='false'). Вам будет понятно, что здесь проверяется? А если это же условие будет как if (is_protected_payment($_POST))? А ваши return mail(); — зачем возвращать код возврата mail, если вы его нигде не используете? Ещё ваш код очень неоднороден по стилю. Например, в одних местах вы работаете напрямую с элементами $_POST, а в других предварительно разбиваете его на переменные. Невольно начинаешь разбираться, зачем было выносить в переменные. Читаешь код несколько раз, и только после этого понимаешь, что вот такая блажь именно на этом моменте на вас нашла.ob_start();
print_r($_POST);
$message = ob_get_contents();
ob_end_clean();
$message = print_r($_POST, true);
никакой необходимости задействовать буферы нет. $r=mysql_query("INSERT INTO it_payment_ym VALUES('$operation_id', '$sender', '$amount', '$datetime', '$invoice_id')");
$r=mysql_query("INSERT INTO `it_payment_ym` SET
`operation_id`='$operation_id',
`sender'`='$sender',
`amount`='$amount',
`datetime`='$datetime',
`invoice_id`='$invoice_id'
)");
$sum = 1.005*$i->itsum;
Автоматический прием Яндекс.Денег на сайте на php