dlh_test_server/app/api/controller/Gt.php
2024-11-30 13:20:37 +08:00

387 lines
14 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\api\controller;
use app\common\basics\Api;
use app\common\server\JsonServer;
use think\facade\Db;
class Gt extends Api
{
public $like_not_need_login = ['messageSend','custom','wxPay','checkMcc','checkSecondMcc','anxinsignPerson','anxinsigncompany'];
private $agetId = "FWH000025501";
private $custId = "60000008228471";
private $publicKey = "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlu5coHWBbtrz8DyX0VbPWiJZlAsofwZ99pZq1CNZhx2bo66BtcHLWQ5LhpXxz7/dRpqUaek1HIK2z03sPBIBQHoTWz74fPsbiKH++d7fX8389XWuEyeL8BuBIUzXDYYmxdZKuOZ9pxjYpVqXkfFRq35TAxKZnm3Nj7ReNliTyY1/kp/vgvgJPaF+tWrCorWBiHvqDLd2teD8yRICRbFtZfd+DNdAYNPhJ8IHAB2Tazc8qG/IOhaP9bAZ74xmVXnXmHQRa+6JLJqIh7k2OrUO0JdcU0HiSiCidQUqdGZf+U088lz8pi95t+AvV6mUFtWyEQZHmv/xrVxj9oVdcbwjFQIDAQAB
-----END PUBLIC KEY-----";
// 虚拟机构号关联商户
public function custom(){
$data = [
'agetId'=>"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("<pre>");
// 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("<pre>");
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("<pre>");
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("<pre>");
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("<pre>");
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("<pre>");
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,'','&amp');
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;
}
}