"FWH000025501", 'custId'=>"60000008228471", 'timeStamp'=>time(), 'version'=>"1.0.0" ]; $d =$this->ASCII($data); $data['sign'] = $this->sign($d,$this->publicKey); $b = json_encode($data,true); var_dump($b); $url = "https://yyfsvxm.postar.cn/yyfsevr/order/connectCust"; $result = $this->curl_post($url,$b); var_dump($result); } public function wxPay($money='1',$local_goods_id=0,$lstore_id=0){ // $user_id = $this->user_id; $user_id = 979; $user = Db::name("user_auth")->where("user_id",$user_id)->find(); $out = "dlh".time().$user_id; $user_id = 979; $data = [ 'agetId'=>"FWH000025501", 'custId'=>"60000008228471", 'orderNo'=>$out, 'txamt'=>$money*100, 'openid'=>$user['openid'], 'payWay'=>"1", 'ip'=>$_SERVER['REMOTE_ADDR'], 'timeStamp'=>time(), 'version'=>"1.0.0", 'wxAppid'=>'wx586d77b9edb0636d', 'traType'=>'8' ]; $da['orderNo'] = $out; $da['txamt'] = $money*100; $da['user_id'] = $user_id; $da['local_goods_id'] = $local_goods_id; $da['lstore_id'] = $lstore_id; $da['dtime'] = date("Y-m-d H:i:s"); Db::name("gt_pay")->save($da); $d =$this->ASCII($data); $data['sign'] = $this->sign($d,$this->publicKey); // print_r("
");
//        var_dump($data);
        $b = json_encode($data,true);
//        var_dump($b);
        $url = "https://yyfsvxm.postar.cn/yyfsevr/order/pay";
        $result = $this->curl_post($url,$b);
        $r['nonceStr'] = $result['data']['jsapiNoncestr'];
        $r['package'] = $result['data']['jsapiPackage'];
        $r['signType'] = $result['data']['jsapiSignType'];
        $r['timeStamp'] = $result['data']['jsapiTimestamp'];
        $r['paySign'] = $result['data']['jsapiPaySign'];
        return JsonServer::success('开始支付',$r);
//        var_dump($result);
    }
    public function account(){

            $ΘACC_DETAIL=array(
                array(
                "ACC_CUST_ID"=>"60000008228471",
                "ACC_DATE"=>"0.2"
            ),
            array(
                "ACC_CUST_ID"=>"60000008435142",
                "ACC_DATE"=>"0.3"
            ),
            array(
                "ACC_CUST_ID"=>"60000008435087",
                "ACC_DATE"=>"0.5"
            ));
        $ΘACC_DETAIL = json_encode($ΘACC_DETAIL,true);
        $d['ACC_DETAIL'] = $ΘACC_DETAIL;
        $ACC_DETAIL = json_encode($d,true);
        $data = [
            'agetId'=>"FWH000025501",
            'custId'=>"60000008228471",
            'orderNo'=>"dlh1732801945979",
            'areaId'=>"20241128184516",
            'accModel'=>"1",
            'accWay'=>"1",
            'orderAccDetail'=>$ACC_DETAIL,
            'timeStamp'=>time(),
            'version'=>"1.0.0"
        ];
        $d =$this->ASCII($data);
        $data['sign'] = $this->sign($d,$this->publicKey);
        print_r("
");
        var_dump($data);
        $b = json_encode($data,true);
        var_dump($b);
        $url = "https://yyfsvxm.postar.cn/yyfsevr/order/account";
        $result = $this->curl_post($url,$b);
        var_dump($result);
    }
    // 查询mcc
    public function checkMcc(){
        $data = [
            'agetId'=>"FWH000015822",
            'type'=>"1",
            'version'=>"1.0.0"
        ];
        $d =$this->ASCII($data);
        $sign = $this->sign($d,$this->publicKey);
        $b = $d."&sign=".$sign;
        $url = "http://jghwucyshtgjcbrnxgwe.gtxygroup.com/testterpay/yyfsevr/addCust/getTopMcc";
        $u = $url."?".$b;
        $result = $this->curl_get($u);
        $r = $result['data'];
        foreach($r as $key=>$value){
            $data_arr['mccName'] = $value['mccName'];
            $data_arr['update_time'] = date("Y-m-d H:i:s");
            $mcc = Db::name("gt_mcc")
                ->where("parent_id",0)
                ->where("state",1)
                ->where("busMccId",$value['busMccId'])
                ->find();
            if($mcc == null){
                $data_arr['busMccId'] = $value['busMccId'];
                $data_arr['dtime'] = date("Y-m-d H:i:s");
                Db::name("gt_mcc")->save($data_arr);
            }else{
                if($mcc['mccName'] != $value['mccName'] ){
                    Db::name("gt_mcc")->where("mcc_id",$mcc['mcc_id'])->update($data_arr);
                }
            }
        }
        print("
");
        var_dump($result);
    }
    // 获取二级mcc
    public function checkSecondMcc(){
        $data = [
            'agetId'=>"FWH000015822",
            'busMccId'=>"278",
            'version'=>"1.0.0"
        ];
        $d =$this->ASCII($data);
        $sign = $this->sign($d,$this->publicKey);
        $b = $d."&sign=".$sign;
        var_dump($b);
        $url = "http://jghwucyshtgjcbrnxgwe.gtxygroup.com/testterpay/yyfsevr/addCust/getSecondMcc";
        $u = $url."?".$b;
        var_dump($u);
        $result = $this->curl_get($u);
        var_dump($result);
    }
    // 获取省
    public function getProvince(){
        $data = [
            'agetId'=>"FWH000015822",
            'version'=>"1.0.0"
        ];
        $d =$this->ASCII($data);
        $sign = $this->sign($d,$this->publicKey);
        $b = $d."&sign=".$sign;
        var_dump($b);
        $url = "http://jghwucyshtgjcbrnxgwe.gtxygroup.com/testterpay/yyfsevr/addCust/getProvince";
        $u = $url."?".$b;
        var_dump($u);
        $result = $this->curl_get($u);
        var_dump($result);
    }
    // 获取市
    public function getCity(){
        $data = [
            'agetId'=>"FWH000015822",
            'code'=>'',
            'version'=>"1.0.0"
        ];
        $d =$this->ASCII($data);
        $sign = $this->sign($d,$this->publicKey);
        $b = $d."&sign=".$sign;
        var_dump($b);
        $url = "http://jghwucyshtgjcbrnxgwe.gtxygroup.com/testterpay/yyfsevr/addCust/getCity";
        $u = $url."?".$b;
        var_dump($u);
        $result = $this->curl_get($u);
        var_dump($result);
    }
    // 获取区县
    public function getArea(){
        $data = [
            'agetId'=>"FWH000015822",
            'code'=>'',
            'version'=>"1.0.0"
        ];
        $d =$this->ASCII($data);
        $sign = $this->sign($d,$this->publicKey);
        $b = $d."&sign=".$sign;
        var_dump($b);
        $url = "http://jghwucyshtgjcbrnxgwe.gtxygroup.com/testterpay/yyfsevr/addCust/getArea";
        $u = $url."?".$b;
        var_dump($u);
        $result = $this->curl_get($u);
        var_dump($result);
    }
    // 安心签(无营业执照)
    public function anxinsignPerson(){
        $data = [
            'agetId'=>"FWH000015822",
            'custLogin'=>"18868040087",
            'custName'=>"胥聪",
            'credNo'=>"330421199404035914",
//            'email'=>"850806214@qq.com", //手机号与邮箱必填其一
            'phone'=>"18868040087", //手机号与邮箱必填其一
            'accountName'=>"胥聪",
            'accountNo'=>"6222623130000255378",
            'version'=>"1.0.0",
            'timeStamp'=>time()
        ];
        $d =$this->ASCII($data);
        $data['sign'] = $this->sign($d,$this->publicKey);
        print_r("
");
        var_dump($data);
        $b = json_encode($data,true);
        var_dump($b);
        $url = "http://jghwucyshtgjcbrnxgwe.gtxygroup.com/testterpay/yyfsevr/anxinsign/person";
        $result = $this->curl_post($url,$b);
        var_dump($result);
    }
    // 安心签(有营业执照)
    public function anxinsigncompany(){
        $data = [
            'agetId'=>"FWH000015822",
            'custLogin'=>"17680341113",
            'custName'=>"黄海勇",
            "enterpriseName"=>"嘉兴市秀洲区新城街道东龙汇超市(个体工商户)",
            "identType"=>"8",
            "identNo"=>"92330411MAE2AHH11F",
//            "email"=>"",// 手机号与邮箱必填其一
            "phone"=>"17680341113",
            "licenseNo"=>"92330411MAE2AHH11F",
            "enterprisePhone"=>"17680341113",
            "address"=>"浙江省嘉兴市秀洲区蓬莱路188号",
            "transName"=>"黄海勇",
            "transNo"=>"430481200011163558",
            "accountName"=>"黄海勇",
            "accountNo"=>"1204068809100156171",
            'credNo'=>"430481200011163558",
            "busName"=>"嘉兴市秀洲区新城街道东龙汇超市(个体工商户)",
            'version'=>"1.0.0",
            'timeStamp'=>time()
        ];
        $d =$this->ASCII($data);
        echo $d;
        var_dump($d);
        $data['sign'] = $this->sign($d,$this->publicKey);
        print_r("
");
        var_dump($data);
        $b = json_encode($data,true);
        var_dump($b);
        $url = "http://jghwucyshtgjcbrnxgwe.gtxygroup.com/testterpay/yyfsevr/anxinsign/company";
        $result = $this->curl_post($url,$b);
        var_dump($result);
    }

    // 安心签短信验证
    public function messageSend(){
        $data = [
            'agetId'=>"FWH000025501",
            'custLogin'=>"18868040087",
            'identNo'=>"330421199404035914",
//            'email'=>"850806214@qq.com", //手机号与邮箱必填其一
            'phone'=>"18868040087", //手机号与邮箱必填其一
            "isSendVoice"=>"0",
            'version'=>"1.0.0",
            'timeStamp'=>time()
        ];
        $d =$this->ASCII($data);
        $data['sign'] = $this->sign($d,$this->publicKey);
        print_r("
");
        var_dump($data);
        $b = json_encode($data,true);
        var_dump($b);
        $url = "http://jghwucyshtgjcbrnxgwe.gtxygroup.com/testterpay/yyfsevr/anxinsign/sendCode";
        $result = $this->curl_post($url,$b);
        var_dump($result);
    }
    // 异步支付回调
    public function payNotify(){

    }
    //异步提现回调
    public function payWithdrawal(){

    }
    //异步进件
    public function inComing(){

    }
    function ASCII($params=array()){
        ksort($params);
        reset($params);
        $str = "";
        $t = array();
        foreach($params as $key=>$value){
            $t[] = $key."=".$value;
        }

        $str = implode("&",$t);
//        $str = http_build_query($params,'','&');
        return $str;
    }
    public function sign($param,$key_pem)
    {
        $sha256 = hash("sha256", $param);
        $privateKey = openssl_pkey_get_public($key_pem); //检测是否公钥
        openssl_public_encrypt($sha256, $sign, $privateKey); //公钥加密
        $sign = base64_encode($sign);
        return $sign;
    }
    private function curl_post($url,$postdata){
        $curl = curl_init(); // 启动一个CURL会话
        curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测
        curl_setopt($curl, CURLOPT_HTTPHEADER, array(
            'Expect:'
        )); // 解决数据包大不能提交
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
        curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); // Post提交的数据包
        curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循
        curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
// curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
        $tmpInfo = curl_exec($curl); // 执行操作
        if (curl_errno($curl)) {
            echo 'Errno' . curl_error($curl);
        }
        curl_close($curl); // 关键CURL会话
        $tmpInfo=json_decode($tmpInfo,true);
        return $tmpInfo;
    }
    private function curl_get($url) {
        //初使化curl
        $curl = curl_init();
        //请求的url,由形参传入
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测
        curl_setopt($curl, CURLOPT_HTTPHEADER, array(
            'Expect:'
        )); // 解决数据包大不能提交
        //将得到的数据返回
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //不处理头信息
        curl_setopt($curl, CURLOPT_HEADER, 0);
        //连接超过10秒超时
        curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
        curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
//        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
        //执行curl
        $output = curl_exec($curl);
        if (curl_errno($curl)) {
            echo 'Errno' . curl_error($curl);
        }
        //关闭资源
        curl_close($curl);
        //返回内容
        $tmpInfo=json_decode($output,true);
        return $tmpInfo;
    }
}