public function StartTransferIn($transfer) { global $SITE_URL; $purse = $this->purses[$transfer->transfer_curr_code]; $action = "https://merchant.webmoney.ru/lmi/payment.asp"; $form = '<form method="POST" action="'.$action.'">'."\n"; $form .= '<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="'.round($transfer->transfer_amount,2).'">'."\n"; $form .= '<input type="hidden" name="LMI_PAYMENT_DESC" value="'.htmlspecialchars(PS::MkTransferDescr($transfer)).'">'."\n"; $form .= '<input type="hidden" name="LMI_PAYMENT_NO" value="'.$transfer->transfer_id.'">'."\n"; $form .= '<input type="hidden" name="LMI_PAYEE_PURSE" value="'.$purse.'">'."\n"; $form .= '<input type="hidden" name="LMI_SIM_MODE" value="0">'."\n"; $form .= '<input type="hidden" name="LMI_RESULT_URL" value="'.$SITE_URL.'/scripts/wm.php'.'">'."\n"; $form .= '<input type="hidden" name="LMI_RESULT_METHOD" value="POST">'."\n"; $form .= '<input type="hidden" name="LMI_SUCCESS_URL" value="'.$SITE_URL.'/success.php'.'">'."\n"; $form .= '<input type="hidden" name="LMI_SUCCESS_METHOD" value="POST">'."\n"; $form .= '<input type="hidden" name="LMI_FAIL_URL" value="'.$SITE_URL.'/fail.php'.'">'."\n"; $form .= '<input type="hidden" name="LMI_FAIL_METHOD" value="POST">'."\n"; $form .= '</form>'."\n"; return $form; } public function CheckTransferIn($params, $LOG) { $LOG = $this->LogInstance($LOG); $SECRET_KEY = $this->config['secret_key']; $sign = $_POST['LMI_PAYEE_PURSE']; $sign .= $_POST['LMI_PAYMENT_AMOUNT']; $sign .= $_POST['LMI_PAYMENT_NO']; $sign .= $_POST['LMI_MODE']; $sign .= $_POST['LMI_SYS_INVS_NO']; $sign .= $_POST['LMI_SYS_TRANS_NO']; $sign .= $_POST['LMI_SYS_TRANS_DATE']; $sign .= $SECRET_KEY; $sign .= $_POST['LMI_PAYER_PURSE']; $sign .= $_POST['LMI_PAYER_WM']; $n_sign = str_replace(" ","",$sign); $hash = strtoupper(hash('sha256',($n_sign))); $signature = $_POST['LMI_HASH']; file_put_contents('/home/admin/web/localhost.ltd/logs/webmoney_signature_log.txt', print_r($hash."\n".$signature, 1), FILE_APPEND); /* if($hash != $signature){ exit; } */ $transfer = exTransfer::loadArray($params['LMI_PAYMENT_NO']); if ($params['LMI_PAYMENT_AMOUNT'] != $transfer['transfer_amount']) return $this->_LogError($LOG, "Суммы не совпали: {$transfer['transfer_amount']} != {$params['LMI_PAYMENT_AMOUNT']}"); if ($params['LMI_PAYEE_PURSE'] != $transfer['payee_purse']) return $this->_LogError($LOG, "Валюты не совпали: {$transfer['payee_purse']} != {$params['LMI_PAYEE_PURSE']}"); return true; }В логах
ADB8B5635D816B436FCBB462CB37161D313A63C0C9E2D5B139E6A4287547E3E8
B7E3CB45CBCBE2B3A26EE9F6D95F2570E657A3E4E9D756DCD4F3CE0B01C2E43C
Сообщение отредактировал Vologda Host: 26 июня 2016 - 13:30