/** * 获取返回时的签名验证结果 * @param $para_temp 通知返回来的参数数组 * @param $sign 返回的签名结果 * @return 签名验证结果 */ function getSignVeryfy($para_temp, $sign) { //除去待签名参数数组中的空值和签名参数 $para_filter = paraFilter($para_temp); //对待签名参数数组排序 $para_sort = argSort($para_filter); //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 $prestr = createLinkstring($para_sort); $isSgin = false; switch (strtoupper(trim($this->alipay_config['sign_type']))) { case "RSA": $isSgin = rsaVerify($prestr, trim($this->alipay_config['ali_public_key_path']), $sign); break; default: $isSgin = false; } return $isSgin; }
/** * 获取返回时的签名验证结果 * @param $para_temp 通知返回来的参数数组 * @param $sign 返回的签名结果 * @param $isSort 是否对待签名数组排序 * @return 签名验证结果 */ function getSignVeryfy($para_temp, $sign, $isSort) { //除去待签名参数数组中的空值和签名参数 $para = paraFilter($para_temp); //对待签名参数数组排序 if ($isSort) { $para = argSort($para); } else { $para = $this->sortNotifyPara($para); } //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 $prestr = createLinkstring($para); $isSgin = false; switch (strtoupper(trim($this->alipay_config['sign_type']))) { case "MD5": $isSgin = md5Verify($prestr, $sign, $this->alipay_config['key']); break; case "RSA": $isSgin = rsaVerify($prestr, trim($this->alipay_config['ali_public_key_path']), $sign); break; case "0001": $isSgin = rsaVerify($prestr, trim($this->alipay_config['ali_public_key_path']), $sign); break; default: $isSgin = false; } return $isSgin; }
/** * 获取返回时的签名验证结果 * @param $para_temp 通知返回来的参数数组 * @param $sign 返回的签名结果 * @param $isSort 是否对待签名数组排序 * @return 签名验证结果 */ function getSignVeryfy($para_temp, $sign, $isSort) { //除去待签名参数数组中的空值和签名参数 //file_put_contents("./alipaylog/getSignVeryfy_para_temp_".strftime("%Y%m%d%H%M%S",time()).".txt",print_r($para_temp,true)); $para = paraFilter($para_temp); //file_put_contents("./alipaylog/getSignVeryfy_para1_".strftime("%Y%m%d%H%M%S",time()).".txt",print_r($para,true)); //对待签名参数数组排序 if ($isSort) { $para = argSort($para); } else { $para = $this->sortNotifyPara($para); } //file_put_contents("./alipaylog/getSignVeryfy_para2_".strftime("%Y%m%d%H%M%S",time()).".txt",print_r($para,true)); //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 $prestr = createLinkstring($para); //file_put_contents("./alipaylog/getSignVeryfy_prestr_".strftime("%Y%m%d%H%M%S",time()).".txt",print_r($prestr,true)); //echo $prestr; $isSgin = false; switch (strtoupper(trim($this->alipay_config['sign_type']))) { case "MD5": $isSgin = md5Verify($prestr, $sign, $this->alipay_config['key']); break; case "RSA": $isSgin = rsaVerify($prestr, trim($this->alipay_config['ali_public_key_path']), $sign); break; case "0001": $isSgin = rsaVerify($prestr, trim($this->alipay_config['ali_public_key_path']), $sign); break; default: $isSgin = false; } return $isSgin; }
/** * 获取返回时的签名验证结果 * @param $para_temp 通知返回来的参数数组 * @param $sign 返回的签名结果 * @return 签名验证结果 */ function getSignVeryfy($para_temp, $sign) { //除去待签名参数数组中的空值和签名参数 $para_filter = paraFilter($para_temp); //对待签名参数数组排序 $para_sort = argSort($para_filter); //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 $prestr = createLinkstring($para_sort); $isSgin = false; switch (strtoupper(trim($this->alipay_config['sign_type']))) { case "MD5": $isSgin = md5Verify($prestr, $sign, $this->alipay_config['key']); break; case 'RSA': $isSgin = rsaVerify($prestr, dirname(__FILE__) . '/cacert/rsa_alipay_public_key.pem', $sign); break; default: $isSgin = false; } return $isSgin; }
function verifysign($body) { $realdata = $body['realdata']; // print_r($realdata);exit; $sign = $body['sign']; $ret = rsaVerify($realdata, _ROOT_URL_ . 'pay/mobilepay/alipaysdk/key/alipay_public_key.pem', $sign); if ($ret) { $ret1['status'] = 0; $ret1['ret'] = $ret; } else { $ret1['status'] = -1; $ret1['ret'] = $ret; } return $ret1; }
/** * 获取返回时的签名验证结果 * @param $para_temp 通知返回来的参数数组 * @param $sign 返回的签名结果 * @return 签名验证结果 */ public function getSignVeryfy($para_temp, $sign) { //除去待签名参数数组中的空值和签名参数 if (strtoupper(trim($this->alipay_config['sign_type'])) == 'RSA') { $para_filter = paraFilter($para_temp, 3); //参数需要urldecode } else { $para_filter = paraFilter($para_temp); } //对待签名参数数组排序 $para_sort = argSort($para_filter); //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 $prestr = createLinkstring($para_sort); $isSgin = false; switch (strtoupper(trim($this->alipay_config['sign_type']))) { case 'MD5': $isSgin = md5Verify($prestr, $sign, $this->alipay_config['key']); break; case 'RSA': $isSgin = rsaVerify($prestr, $this->alipay_config['alipay_public_key'], $sign); break; default: $isSgin = false; } return $isSgin; }