php接口和java接口_php--php调java接口验签

use Think\Model;classDealJavaModel extends Model {/**

* @title 处理向java传参

* @param $url java接口地址

* @param $data 业务参数*/

publicfunction dealJavaParam($url,$data){//调java接口地址

$url=C('java_php').$url;

$token=C('token');

$apiKey=C('apiKey');

$timestamp=time();

$version=C('version');

$source=4;

$data=json_encode($data);//签名

$paramArr=array('token'=>$token,'timestamp'=>$timestamp,'source'=>$source,'version'=>$version,'data'=>$data

);

$sign=$this->createSign($paramArr,$apiKey);

$header= array('Content-Type: application/json; charset=utf-8',"token:$token","timestamp:$timestamp","source:$source","version:$version","sign:$sign","data:$data");

$result=$this->tocurl($url, $header,$data);

$res_info=json_decode($result,true);return$res_info;

}/**

* @title 签名函数

* @param $paramArr 系统参数

* @param $apiKey apikey

* @return string 返回签名*/

privatefunction createSign ($paramArr,$apiKey) {

ksort($paramArr);

$sign='';foreach ($paramArr as $key =>$val) {if ($key != '' && $val != '') {

$sign .= $key."=".$val."&";

}

}

$sign=rtrim($sign,"&");

$sign .=$apiKey;

$sign=strtolower($sign);

$sign=md5($sign);return$sign;

}/**

* @title 远程调java接口函数

* @param $url java接口地址

* @param $header 要传的头信息

* @param $data 业务参数*/

privatefunction tocurl($url, $header, $data){

$ch=curl_init();if(substr($url,0,5)=='https'){

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); //跳过证书检查

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); //从证书中检查SSL加密算法是否存在

}

curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_POST,true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response=curl_exec($ch);if($error=curl_error($ch)){

die($error);

}

curl_close($ch);return$response;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值