客户端在支付前需调用CP服务端的签名生成方法,CP服务端将签名返回给客户端 *
注意:此类主要为示例签名计算方法 *
具体实现需要CP依据自己与客户端通信的协议加密处理等,避免安全性问题 */ try{ // 接收HTTP POST信息 $request = file_get_contents("php://input"); // 测试数据 //$request = '{"callbackInfo":"callbackInfo","notifyUrl":"notifyUrl","amount":"amount","cpOrderId":"cpOrderId","accountId":"accountId"}'; LoggerHelper::info("[PayChargeSignService.php]收到的客户端待签名的请求:".$request); // 处理支付回调请求 $reqData = json_decode($request,true); if($reqData!=null){ $baseService = new BaseSDKService(); //定义签名时排除在外的key,即:指定key不参与签名 $notInKey = array("roleName", "roleId", "grade", "serverId", "signType"); $signSource = $baseService->getSignDataWithoutNotInKey($reqData, $notInKey).ConfigHelper::getStrVal("sdkserver.game.apikey");//组装签名原文 $sign = md5($signSource);//MD5加密签名 LoggerHelper::info("[PayChargeSignService.php]"."[签名原文]:".$signSource); LoggerHelper::info("[PayChargeSignService.php]"."[签名结果]:".$sign); $array = array('sign' => $sign); echo json_encode($array, true); return; } else{ LoggerHelper::info("[PayChargeSignService.php]"."接口返回异常"); $array = array('sign' => null); echo json_encode($array, true); return; } } catch (SDKException $e){ LoggerHelper::info("[PayChargeSignService.php]".$e->getMessage()); $array = array('sign' => null); echo json_encode($array, true); return; }