Esempio n. 1
0
 /**
  * 获取返回时的签名验证结果
  * @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;
 }
Esempio n. 4
0
 /**
  * 获取返回时的签名验证结果
  * @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;
 }
Esempio n. 5
0
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;
}
Esempio n. 6
0
 /**
  * 获取返回时的签名验证结果
  * @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;
 }