| Server IP : 210.245.233.93 / Your IP : 216.73.216.226 Web Server : Apache/2.2.15 (CentOS) System : Linux webserver2.onesolution.com.hk 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64 User : apache ( 48) PHP Version : 5.3.3 Disable Function : exec, shell_exec, system, passthru, popen, proc_open, pcntl_exec MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/hkosl.com/b2b2c/ |
Upload File : |
<?php
$dbh = new PDO("mysql:host=192.168.171.23;dbname=b2b2c_api", 'admin', 'PHac7dru');
if (!function_exists('bind_pdo')) {
function bind_pdo($sql, $parameters = NULL, $action = NULL, $escape = true, $_dbh=null)
{
if(empty($_dbh)){
global $dbh;
}else{
$dbh = $_dbh;
}
if ($action == "insert" || $action == "update" || $action == "delete" || empty($action)) {
if (!($sth = $dbh->prepare($sql))) {
throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
}
if (!$sth->execute($parameters)) {
throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
}
}
if ($action == "selectone") {
if (!($sth = $dbh->prepare($sql))) {
throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
}
if (!$sth->execute($parameters)) {
throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
}
$result = $sth->fetch(PDO::FETCH_ASSOC);
/*if (!empty($result)) {
foreach ($result as $key => $row) {
$result[$key] = escape_string($result[$key]);
}
}*/
return $result;
}
if ($action == "selectall") {
if (!($sth = $dbh->prepare($sql))) {
throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
}
if (!$sth->execute($parameters)) {
throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
}
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
/*if (!empty($result)) {
foreach ($result as $key => $row) {
foreach ($row as $key2 => $row2) {
$result[$key][$key2] = escape_string($result[$key][$key2]);
}
}
}*/
return $result;
}
if ($action == "dump") {
return dump_sql($sql, $parameters);
}
}
}
if (!function_exists('insert_record')) {
function insert_record($table_name, $data, $dump_sql = NULL)
{
$result = "";
if (!empty($table_name) && !empty($data)) {
$sql = "insert into `" . $table_name . "` set ";
$parameters = array();
foreach ($data as $table_field => $value) {
$sql .= "`" . $table_field . "` = ?, ";
$parameters[] = $value;
}
$sql = substr_replace($sql, "", -2);
}
if (!empty($dump_sql)) {
$result = dump_sql($sql, $parameters);
} else {
$result = bind_pdo($sql, $parameters);
}
return $result;
}
}
if (!function_exists('update_record')) {
function update_record($table_name, $data, $where, $dump_sql = NULL)
{
$result = "";
if (!empty($table_name) && !empty($data)) {
$sql = "update `" . $table_name . "` set ";
$parameters = array();
foreach ($data as $table_field => $value) {
$sql .= "`" . $table_field . "` = ?, ";
$parameters[] = $value;
}
$sql = substr_replace($sql, "", -2);
$sql .= " where " . $where["sql"];
foreach ($where["parameters"] as $table_field => $value) {
$parameters[] = $value;
}
if (!empty($dump_sql)) {
$result = dump_sql($sql, $parameters);
} else {
$result = bind_pdo($sql, $parameters);
}
}
return $result;
}
}
if (!function_exists('dump_sql')) {
function dump_sql($sql, $parameters)
{
$keys = array();
# build a regular expression for each parameter
foreach ($parameters as $key => $value) {
if (is_string($key)) {
$keys[] = '/:' . $key . '/';
} else {
$keys[] = '/[?]/';
}
}
foreach ($parameters as $key2 => $value) {
$parameters[$key2] = "'" . $value . "'";
}
$sql = preg_replace($keys, $parameters, $sql, 1, $count);
#trigger_error('replaced '.$count.' keys');
return $sql;
}
}
if (!function_exists('debug_log')) {
function debug_log($code, $data)
{
$date = new DateTime();
$date->modify("-2 month");
$sql = "delete from debug_log where createdate <= ?";
$parameters = array($date->format("Y-m-d"));
bind_pdo($sql, $parameters);
$sql = "insert into debug_log (code, log_data, createdate) value (?,?,?)";
$parameters = array($code, json_encode($data), date("Y-m-d H:i:s"));
bind_pdo($sql, $parameters);
}
}
//include 'webadmin/libraies/autoload.php';
/*
* https://github.com/klein/klein.php
* composer require klein/klein
*
* api list:
* - payease settlement
* - merchant application result
*/
function _msg_sign($text, $key = "test")
{
return hash_hmac('md5', $text, $key);
}
/*
* v_mid 商戶編號
* v_subid 子商戶編號
* v_auditstatus 審核狀態
* v_auditstatusdesc 審核結果說明
* v_mac 數字指紋
*
*/
/*$_REQUEST["v_mid"] = 10903;
$_REQUEST["v_subid"] = 1;
$_REQUEST["v_auditstatus"] = 1;*/
insert_record('api_log', array('api' => 'merchant application', 'data' => json_encode(array($_REQUEST))));
$v_mid = $_REQUEST["v_mid"];
$v_subid = $_REQUEST["v_subid"];
$v_auditstatus = $_REQUEST["v_auditstatus"];
$v_auditstatusdesc = $_REQUEST["v_auditstatusdesc"];
$v_mac = $_REQUEST["v_mac"];
function hmac($key, $data)
{
// 创建 md5的HMAC
$b = 64; // md5加密字节长度
if (strlen($key) > $b) {
$key = pack("H*", md5($key));
}
$key = str_pad($key, $b, chr(0x00));
$ipad = str_pad('', $b, chr(0x36));
$opad = str_pad('', $b, chr(0x5c));
$k_ipad = $key ^ $ipad;
$k_opad = $key ^ $opad;
return md5($k_opad . pack("H*", md5($k_ipad . $data)));
}
if (!empty($v_mid)) {
$key = 'test';//商户的密钥
$data = $v_mid . $v_subid . $v_auditstatus;//七个参数的拼串
//$data="error";
$v_md5info = hmac($key, $data);
header("Content-type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?><message><status>0</status><statusdesc>success</statusdesc><mid>';
echo $v_mid;
echo '</mid><subid>';
echo $v_subid;
echo '</subid><auditstatus>';
echo $v_auditstatus;
echo '</auditstatus><mac>';
echo $v_md5info;
echo '</mac></message>';
} else {
header("Content-type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?><message><status>1</status><statusdesc>other error</statusdesc></message>';
}