<?php
//https协议是否需要验证证书
define('SSL_VERIFYPEER', true);
$key="您申请的key,在会员中心->我的数据->对应数据的下方";
$url="https://v.1dq.com/api/a137";
$param["appid"]="您的appid,在会员中心->安全设置->对应数据->appid";
$param['bankcard'] = '';
$param['bankname'] = '';
$param['province'] = '';
$param['city'] = '';
$param['district'] = '';
$param['keyword'] = '';
$param['page'] = '';
ksort($param); //对字符串进行字典(a-z)排序,需排除sign字段;
$param["sign"] = md5(urlencode(http_build_query($param)).$key); //生成sign
//发送远程请求;
$result = APIStore($url, $param, true);
if ($result['error_code'] == 0) {
//处理成功
echo $result['reason'];
} else {
//处理失败
echo $result['reason'];
}
//打印返回数据
print_r($result);
/**
* APIStore 获取数据
* @param $url 接口地址
* @param null $param 要发送的数据
* @param bool $ispost 是否采用POST发送,默认GET
* @return mixed
*/
function APIStore($url, $param = null, $ispost = false)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $ispost ? $url : $url . '?' . http_build_query($param));
//如果是https协议
if (stripos($url, "https://") !== FALSE) {
/**
* 如果需要验证证书
*/
if (SSL_VERIFYPEER) {
//验证交换证书
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
//检查SSL证书公用名是否存在,并且是否与提供的主机名匹配
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
//设置实现协议为TLS1.0版本
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
//根证书文件路径,相对路径和绝对路径均可,
//推荐使用绝对路径;为了安全证书文件最好不要和应用代码放在一起;
//用户请保持更新 使用https接口需要设置该证书文件为可信任根证书,
//以最大限度满足安全性(使用信任任何证书的方式并不安全)。
curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
} /**
* 如果不需要验证证书
*/
else {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
//CURL_SSLVERSION_TLSv1
curl_setopt($curl, CURLOPT_SSLVERSION, 1);
}
}
//USERAGENT
curl_setopt($curl, CURLOPT_USERAGENT, 'APIStore');
//超时时间
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($curl, CURLOPT_TIMEOUT, 120);
//通过POST方式提交
if ($ispost) {
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($param));
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//返回内容
$callbcak = curl_exec($curl);
//关闭,释放资源
curl_close($curl);
//返回内容JSON_DECODE
return json_decode($callbcak, true);
}