/** * 对控件支付成功返回的结果信息中data域进行验签 * @param $jsonData json格式数据,例如:{"sign" : "J6rPLClQ64szrdXCOtV1ccOMzUmpiOKllp9cseBuRqJ71pBKPPkZ1FallzW18gyP7CvKh1RxfNNJ66AyXNMFJi1OSOsteAAFjF5GZp0Xsfm3LeHaN3j/N7p86k3B1GrSPvSnSw1LqnYuIBmebBkC1OD0Qi7qaYUJosyA1E8Ld8oGRZT5RR2gLGBoiAVraDiz9sci5zwQcLtmfpT5KFk/eTy4+W9SsC0M/2sVj43R9ePENlEvF8UpmZBqakyg5FO8+JMBz3kZ4fwnutI5pWPdYIWdVrloBpOa+N4pzhVRKD4eWJ0CoiD+joMS7+C0aPIEymYFLBNYQCjM0KV7N726LA==", "data" : "pay_result=success&tn=201602141008032671528&cert_id=68759585097"} * @return 是否成功 */ static function validateAppResponse($jsonData) { //global $log; $data = json_decode($jsonData); $sign = $data->sign; $data = $data->data; $dataMap = parseQString($data); $public_key = getPulbicKeyByCertId($dataMap['cert_id']); $signature = base64_decode($sign); $params_sha1x16 = sha1($data, FALSE); $isSuccess = openssl_verify($params_sha1x16, $signature, $public_key, OPENSSL_ALGO_SHA1); return $isSuccess; }
function verify($params) { global $log; $public_key = getPulbicKeyByCertId($params['certId']); $signature_str = $params['signature']; unset($params['signature']); $params_str = coverParamsToString($params); $log->LogInfo('报文去[signature] key=val&串>' . $params_str); $signature = base64_decode($signature_str); $params_sha1x16 = sha1($params_str, FALSE); $log->LogInfo('摘要shax16>' . $params_sha1x16); $isSuccess = openssl_verify($params_sha1x16, $signature, $public_key, OPENSSL_ALGO_SHA1); $log->LogInfo($isSuccess ? '验签成功' : '验签失败'); return $isSuccess; }
/** * 验签 * * @param String $params_str * @param String $signature_str */ function verify($params) { // 公钥 $public_key = getPulbicKeyByCertId($params['certId']); // echo $public_key.'<br/>'; // 签名串 $signature_str = $params['signature']; unset($params['signature']); $params_str = coverParamsToString($params); $signature = base64_decode($signature_str); // echo date('Y-m-d',time()); $params_sha1x16 = sha1($params_str, FALSE); $isSuccess = openssl_verify($params_sha1x16, $signature, $public_key, OPENSSL_ALGO_SHA1); return $isSuccess; }
/** * 验签 * * @param String $params_str * @param String $signature_str */ function verify($params) { global $log; // 公钥 $public_key = getPulbicKeyByCertId($params['certId']); // echo $public_key.'<br/>'; // 签名串 $signature_str = $params['signature']; unset($params['signature']); $params_str = createLinkString($params, true, false); $log->LogInfo('报文去[signature] key=val&串>' . $params_str); $signature = base64_decode($signature_str); // echo date('Y-m-d',time()); $params_sha1x16 = sha1($params_str, FALSE); $log->LogInfo('摘要shax16>' . $params_sha1x16); $isSuccess = openssl_verify($params_sha1x16, $signature, $public_key, OPENSSL_ALGO_SHA1); $log->LogInfo($isSuccess ? '验签成功' : '验签失败'); return $isSuccess; }
/** * 验签 * * @param String $params_str * @param String $signature_str */ function verify($params) { $log = new \PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL); // 公钥 $public_key = getPulbicKeyByCertId($params['certId']); // echo $public_key.'<br/>'; // 签名串 $signature_str = $params['signature']; unset($params['signature']); $params_str = coverParamsToString($params); $log->LogInfo('报文去[signature] key=val&串>' . $params_str); $signature = base64_decode($signature_str); // echo date('Y-m-d',time()); $params_sha1x16 = sha1($params_str, FALSE); $log->LogInfo('摘要shax16>' . $params_sha1x16); $isSuccess = openssl_verify($params_sha1x16, $signature, $public_key, OPENSSL_ALGO_SHA1); $log->LogInfo($isSuccess ? '验签成功' : '验签失败'); return $isSuccess; }