$mysql_conf['host'], 'port' => $mysql_conf['port'], 'user' => $mysql_conf['user'], 'passwd' => $mysql_conf['passwd'], 'dbname' => 'paydb' )); return $conn; } private function _reaEncode($str) { $prikey = self::_redPrikey(); return openssl_sign($str, $sign, $prikey, OPENSSL_ALGO_SHA1) ? base64_encode($sign) : false; } public function payNotify() { error_log('payNotify:' . json_encode($_REQUEST)); /* $sign_info = $this->_reaEncode( 'MerNo=' . $_REQUEST['MerNo'] . '&' . 'BillNo=' . $_REQUEST['BillNo'] . '&' . 'OrderNo=' . $_REQUEST['OrderNo'] . '&' . 'Amount=' . $_REQUEST['Amount'] . '&' . 'Succeed=' . $_REQUEST['Succeed'] ); if ($sign_info != $_REQUEST['SignInfo']) { die('sign error'); }*/ $nowtime = time(); $conn = $this->getMysql($_REQUEST['BillNo']); $conn->execScript("INSERT INTO notify_his(orderid, request_data, ipv4, createtime)" . "VALUES(:orderid, :request_data, :ipv4, :createtime);", array( ':orderid' => $_REQUEST['BillNo'], ':request_data' => json_encode($_REQUEST), ':ipv4' => phpcommon\getIPv4(), ':createtime' => time() )); if ($_REQUEST['Succeed'] == '88') { $row = $conn->execQueryOne('SELECT orderid, accountid, sp_pay_result, status, channel, '. ' gameid, itemid, price '. 'FROM orderinfo ' . 'WHERE orderid=:orderid;', array( 'orderid' => $_REQUEST['BillNo'] ) ); if ($row) { { $log_params = array( '#account_id' => $row['accountid'], '#distinct_id' => '', '#type' => 'track', '#time' => date("Y-m-d H:i:s"), '#ip' => phpcommon\getIPv4(), '#event_name' => 'event_' . 11 . '_' . 41, 'properties' => array( 'channel' => $row['channel'], 'gameid' => $row['gameid'], 'orderid' => $row['orderid'], 'itemid' => $row['itemid'], 'itemnum' => 1, 'amount' => $row['price'], 'sp_orderid' => $_REQUEST['OrderNo'], 'sp_amount' => $_REQUEST['Amount'], ) ); phpcommon\TGLog::writeToLog('gamepay', $row['gameid'], $log_params); } if ($row['status'] == 0 && $row['sp_pay_result'] == 0) { $ret = $conn->execScript('INSERT INTO confirmed_order(orderid, status, createtime)' . 'VALUES(:orderid, :status, :createtime);', array( ':orderid' => $_REQUEST['BillNo'], ':status' => 0, ':createtime' => $nowtime, )); if (!$ret) { die('dberror'); } $ret = $conn->execScript('UPDATE orderinfo SET ' . ' sp_pay_result = 1, ' . ' sp_confirm_time = :sp_confirm_time, ' . ' sp_amount = :sp_amount, ' . ' sp_orderid = :sp_orderid ' . 'WHERE orderid=:orderid;', array( ':orderid' => $_REQUEST['BillNo'], ':sp_orderid' => $_REQUEST['OrderNo'], ':sp_amount' => $_REQUEST['Amount'], ':sp_confirm_time' => $nowtime )); if ($ret) { die('ok'); } } } } die('sign error'); } }