微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP 获取银行卡所属信息

PHP 简单获取银行卡所属信息
注册银联账号,申请开放接口相关使用配置信息,把自己的服务器ip添加到白名单
银联开发平台:https://open.unionpay.com/tjweb/login

<?PHP

class Name 
{
    public function getBank(){
    
        $APP_ID = 'xxxxxxxxxx';
        
        $APP_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
        
        $signature = 'xxxxxxxxxxxxxxxxxxxxf';
        
        //银行卡号
        $body = '{"cardNo":"6214830215395211"}';
    
        //获取token,注意这里要做缓存机被动制判断时间过期就刷新,本人把token做到中间服务器,下面函数没保存你们需自行保存
        $TOKEN = $this->getToken($APP_ID,$APP_SECRET);
        
        //调用的API
        $api_url = "https://openapi.unionpay.com/upapi/cardbin/cardinfo?token=$TOKEN";
        
        //注意注意!银联的java是用毫秒时间戳,
        $time =$this->msectime();
        
        //参数拼接
        $str = $signature.$body.$time;
        
        //sha256签名计算
        $sign =hash('sha256', $str);

        //请求链接拼接时间戳和签名
        $api_url = $api_url."&ts=$time&sign=$sign";

        //post请求传body报文
        $res = $this->httpPost($api_url,$body);
        
        var_dump($res);
    }

    //获取token
    public function getToken($appid,$appsecret){

        $url = "https://openapi.unionpay.com/upapi/cardbin/token?app_id=$appid&app_secret=$appsecret";
          
        $res = $this->httpGet($url);

        $res=json_decode($res,true);

        return $res['token'];
    }

    //获取当前毫秒时间戳
    public function msectime() {

        list($msec, $sec) = explode(' ', microtime());

        $time = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);

        return $time;

    }

    public function httpGet($url) {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_URL, $url);
        $res = curl_exec($curl);
        curl_close($curl);
        return $res;
    }

    public function httpPost($url, $post_data){
        // header传送格式
        $headers = array(
            "content-type:application/json"
        );
        //初始化
        $curl = curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL, $url);
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, false);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        //设置post方式提交
        curl_setopt($curl, CURLOPT_POST, true);
        // 设置post请求参数
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
        // 添加头信息
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        // CURLINFO_HEADER_OUT选项可以拿到请求头信息
        curl_setopt($curl, CURLINFO_HEADER_OUT, true);
        // 不验证SSL
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        //执行命令
        $data = curl_exec($curl);
        //关闭URL请求
        curl_close($curl);
        //显示获得的数据
        return $data;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐