1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | <?php //https协议是否需要验证证书 define( 'SSL_VERIFYPEER' , false); $url = 'https://v.1dq.com/api/bank/v3' ; $param = array ( 'key' => '您申请的key,在会员中心->我的数据->对应数据的下方' , 'bankcard' => '62220211111' , 'realName' => '张三' , 'cardNo' => '123456789' , 'cardtype' => '' , 'information' => '' , ); //发送远程请求; $result = APISLA( $url , $param , true); //认证通过,姓名和号码一致; if ( $result [ 'error_code' ] == 0) { echo $result [ 'reason' ]; } //认证不通过,姓名和号码不一致; else { echo $result [ 'reason' ]; } //打印返回数据 print_r( $result ); /** * APISLA 获取数据 * @param $url 接口地址 * @param null $param 要发送的数据 * @param bool $ispost 是否采用POST发送,默认GET * @return mixed */ function APISLA( $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); } |