$value) { $postData[strtolower($key)] = $value; // key统一转化为小写 } \Logging\LogInfo("postData: " . print_r($postData, true)); $orderid = $postData['orderid']; $gameid = $postData['gameid']; $roleid = $postData['roleid']; // 玩家ID $username = $postData['username']; // 玩家平台账号 $serverid = $postData['serverid']; $paytype = $postData['paytype']; $paytime = $postData['paytime']; // 用户支付时间,如2017-02-06 14:22:32 $attach = $postData['attach']; // 游戏下单时传递的扩展参数,将原样返回。 $amount = $postData['amount']; $sign = $postData['sign']; if (!$orderid || !$roleid || !$attach || !$amount || !$sign) { Ret("ParamError"); exit; } if ( !\CfgReader\ReadConfig() || !\CfgReader\GetConfigData("Quick", "Key_" . $appid . "_Callback_Key", $Callback_Key) ) { Ret("CfgError"); exit; } $md5SignLocal = md5("orderid=" . $orderid . "&username=" . $username . "&gameid=" . $gameid . "&roleid=" . $roleid . "&serverid=" . $serverid . "&paytype=" . $paytype . "&amount=" . $amount . "&paytime=" . $paytime . "&attach=" . $attach . "&appkey=" . $Callback_Key); if ($md5SignLocal != $sign) { Ret("SignError", " md5SignLocal:" . $md5SignLocal . " != sign:" . $sign); exit; } $extrasLen = 4; $extrasParams = explode("_", $attach, $extrasLen); // channelID_cp订单id_区服id_游戏充值编号 \Logging\LogInfo("extrasParams:" . print_r($extrasParams, true)); $extras_params = $extrasParams; if (!isset($extras_params) || count($extras_params) != $extrasLen) { Ret("extras_params_error", " extras_params:" . print_r($extras_params, true)); exit; } // 同步游戏服务器 $channelID = $extras_params[0]; $cpOrderID = $extras_params[1]; $serverID = intval($extras_params[2]); $OrderInfo = $extras_params[3]; $AccountID = strtolower($username) . "@" . $channelID; $result = "FAILED"; // 没有创建订单步骤,直接使用sdk订单号 $returnArr = \PayOrder\DoReceivePayOrder($appid, $cpOrderID, $orderid, $AccountID, $serverID, $OrderInfo, $amount, $payTime, false); switch ($returnArr["errorcode"]) { case 1: $result = "success"; break; case 2: $result = "success"; break; default: if ($returnArr["errordesc"]) { $result = $returnArr["errordesc"]; } break; } Ret($result); exit; function Ret($ret, $msg = "") { echo $ret; $logMsg = $ret; if ($msg) { $logMsg .= " msg => " . $msg; } if ($ret != "success") { \Logging\LogError($logMsg); } else { \Logging\LogInfo($logMsg); } }