dlh_test_server/app/localstore/controller/abutment/Abutment.php
2024-12-14 16:24:38 +08:00

260 lines
12 KiB
PHP
Executable File
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\localstore\controller\abutment;
use app\common\basics\ShopBase;
use IcbcConstants;
use think\App;
use think\Request;
use DefaultIcbcClient;
use UiIcbcClient;
use think\facade\Db;
include_once "../vendor/icbc-api-sdk-cop-php/DefaultIcbcClient.php";
include_once "../vendor/icbc-api-sdk-cop-php/UiIcbcClient.php";
class Abutment extends ShopBase
{
private $APP_ID = '11000000000000026359';
private $url = 'https://gw.open.icbc.com.cn/api/mybank/enterprise/pay/payent/V1';
private $PRI_KEY = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC9Soh5U2wx4YQJUaXn80cuHzmZl8p+07yUwl5jawuS88zy6lyPav32ZrsTfQQZv4uqfYCA4oT+BIQE6Segd5yd90FcGHH/vYb9b7JLZxslUGiuXuD6u9ULPt3Upgy9IROq8ghyhBFas3rfNl48Hh0L5WKADYb3Ywi/CqbSKUe4hVJ22GbrGz1eMwZxMD2yveHsmFrsNTYTiy3u+kASk479iYkVxOoobwMMv+1BsnmrAqs5uJt+LVcR2qmLJE0Gyog+CvRI2MORIcYvu8yzwkJu2gsZTVr6yl3WyKv5Mh+79dloimP6YHJWvlmpu77BUsBSofCttPAkEsWG57Rfrft3AgMBAAECggEASpxePrRLKT4itSmho1OY8u0L3yadgnAjHN+gJL/EyB+g4P7PjRg3EjBb/MqCG0QM4R6m0CZ5FUbiYq0kGXQMH5eeA5b/GDa0RqEIPgBeCs8u88wiEbKHvu8AsRjiXIn1HqRYAAtea8ni3KipbDjSaiX4NVEfqdM3V1Xze1MaGfiFgs2artnUw3ZgiUeEIJxpuqwplXsUeZBKm88XNo7mfBfBvP3VFq9HF4O6Lo01SfCn+DWQfEpiRoS7xHfPhxnkggNdr4OMzUg7DV1xTJpX5FeeakuVO4CkyRBrjIR1W6Eq7HeAsoNoPK1OdoBN4zP77H0zW7RT0D8EImfkJKgpwQKBgQDZHH+zD6gvrlReN8DBt0wUksaQ3vAIlXrBIpshPDMvFpqBMQ2SIuMWx9CGiTX4iMAtdQR7cHG2lDwnyv6wjE4lejAZ0E3eHiQJsvA41pbZzenbiilLTv92Ea2PgR8V/qXxIyafedD3Xec7BilmOm+h33ZIo4v8MFjy83FT3H9vswKBgQDfMluU5K49rdtJpRlpCFywqPac7KOpcVT2T6UYmPO1fxek+3lnhB2qFMiJWBYI30mHRglERFRWWoHdEir2eUhXY5u/kN6ncVsMHCVqslJKmBBEeHJRFl41IbwByBHAPqKIcXI5lLyQdNxmgnG3tZDBDTQPz2pdbjARMb9o3wbDLQKBgQDX7bwjvoKrSVqnihOvljmYjJHoK5HXN7OqulxHJbRSNMzdiIfSu9fXJEuEQprm4Dsh+qvGiQLPb4aUnRPJSwG9zFRimAWZz6hP7SN1pBbL8DuSGUsQlzUDnHldrDHakjVAKpGTMnheTYpX7bzm619zQuhFPkNPQlZ06yHfIgGseQKBgQCXi4enNwYflvY3sMPqDuVwhai8r+gH2o2HmFhOtTt0VlDlkmHCKXBC1U28A3UinQk9sg4ErihdYaKfSgClzX+S5m0PyvuC0XKybEHzihRZ1ZnmA6oK6JcamEchJoj28RBGeFDIS/ckVlR3vcYcqEka6y4YNgrQWUqFwjNmr1fWGQKBgQDGFD2O3/2MH068DMTskQWWoJWV1Isvst+oXBgERKkh5A/BYAAaw9kb+tKke/czulajRizv+nhstPQ2d/701QmdLCK6rK05SEChctaq7Cxk2QRRWHznYPqmJHPkuUXqg5LaOa81UDlGKDK1ylljppZOONlLtm00k6s5fLOe1SRfJg==";
private $APIGW_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvUqIeVNsMeGECVGl5/NHLh85mZfKftO8lMJeY2sLkvPM8upcj2r99ma7E30EGb+Lqn2AgOKE/gSEBOknoHecnfdBXBhx/72G/W+yS2cbJVBorl7g+rvVCz7d1KYMvSETqvIIcoQRWrN63zZePB4dC+VigA2G92MIvwqm0ilHuIVSdthm6xs9XjMGcTA9sr3h7Jha7DU2E4st7vpAEpOO/YmJFcTqKG8DDL/tQbJ5qwKrObibfi1XEdqpiyRNBsqIPgr0SNjDkSHGL7vMs8JCbtoLGU1a+spd1sir+TIfu/XZaIpj+mByVr5Zqbu+wVLAUqHwrbTwJBLFhue0X637dwIDAQAB";
private $signType = "RSA2";
private $apiClient;
public function __construct(\think\App $app){
parent::__construct($app);
$this->apiClient = new \DefaultIcbcClient(
$this->APP_ID,
$this->PRI_KEY,
$this->signType,
'UTF-8',
'',
$this->APIGW_PUBLIC_KEY,
'',
'',
'',
''
);
}
public function test($empowerPhone="13067694782",$crftNo1="91330401MADP554D6P",$crftType1="101",$mcc="9703"){
// 110-营业执照(个体工商户),101-营业执照(企业法人)
// var_dump(132);die;
$msg_id = $this->getMsgId();
$request = [
'serviceUrl' => 'https://gw.open.icbc.com.cn/api/mybank/cardbusiness/shop/MerRegistrationAdd/V1',
'method' => 'POST',
'isNeedEncrypt'=>false,
'biz_content' => array(
"channelFlag"=>"2",
"notify_url"=>"https://dlh.hainings.com/index/index/localReturn",
"empowerPhone"=>$empowerPhone,
"applyType"=>"00001",
"crftType1"=>$crftType1,
"crftNo1"=>$crftNo1,
// "crftNo1"=>"914310236828465718",
"serId"=>"120400005722",
"mcc"=>$mcc
// "mcc"=>"5732"
// "mcc"=>"4816"
),
'extraParams'=>[]
];
print_r("<pre>");
var_dump($request);
$res = $this->apiClient->execute($request,$msg_id,"");
}
public function test1(){
$msg_id = $this->getMsgId();
$request = [
'serviceUrl' => 'https://gw.open.icbc.com.cn/api/mybank/cardbusiness/shop/MerRegistrationQuery/V1',
'method' => 'POST',
'isNeedEncrypt'=>false,
'biz_content' => array(
"notify_url"=>"https://dlh.hainings.com/index/index/localReturn",
"applyType"=>"00001",
"crftType"=>"101",
"crftNo"=>"91330401MADP554D6P",
"serId"=>"120400005722"
),
'extraParams'=>[]
];
// print_r("<pre>");
// var_dump($request);
$res = $this->apiClient->execute($request,$msg_id,"");
var_dump($res);
$result = json_decode($res,true);
$r = json_decode($result['results'],true);
var_dump($r);
}
public function payTest(){
$user_id = 1;
$msg_id = $this->getMsgId();
$out = "dlh".time().$user_id;
$request = [
'serviceUrl' => 'https://gw.open.icbc.com.cn/api/cardbusiness/aggregatepay/b2c/online/consumepurchase/V2',
'method' => 'POST',
'isNeedEncrypt'=>false,
'biz_content' => array(
"mer_id"=>"120448160200",
"ser_Id"=>"120400005722",
"out_trade_no"=>$out,
"pay_mode"=>"9",
"access_type"=>"9",
"mer_prtcl_no"=>"1204481602000201",
"orig_date_time"=>date("Y-m-d\TH:i:s"),
"decive_info"=>"11",
"body"=>"泰宇",
"fee_type"=>"001",
"spbill_create_ip"=>"183.141.48.230",
"total_fee"=>"1000",
"mer_url"=>"https://dlh.hainings.com/index/index/localReturn",
"notify_type"=>"HS",
"shop_appid"=>"wx586d77b9edb0636d",
"icbc_appid"=>$this->APP_ID,
"open_id"=>"ouOMm41xnIKqoZ66ygwJa-qJQpgw",
"notify_url"=>"https://dlh.hainings.com/index/index/localReturn",
"order_submit_act_input"=>array(
"rec_num"=>"1",
"sub_order_id"=>"dlh".time().$user_id."1",
"oper_flag"=>"0",
"busi_type"=>"1",
"seq_no"=>$out,
"ori_trx_date"=>date("Y-m-d"),
"sub_mer_id"=>"120448160198",
"sub_mer_prtcl_no"=>"120448160198",
"classify_amt"=>"600"
)
),
'extraParams'=>[]
];
$res = $this->apiClient->execute($request,$msg_id,"");
$result = json_decode($res,true);
print_r("<pre>");
var_dump($result);
}
public function payTestCheck(){
$user_id = 1;
$msg_id = $this->getMsgId();
// $out = "dlh".time().$user_id;
$request = [
'serviceUrl' => 'https://gw.open.icbc.com.cn/api/cardbusiness/aggregatepay/b2c/online/orderqry/V2',
'method' => 'POST',
'isNeedEncrypt'=>false,
'biz_content' => array(
"mer_id"=>"120448160201",
"deal_flag"=>'0',
"out_trade_no"=>"dlh1722085369979",
// "order_id"=>"120448160200000582407190000053",
"mer_prtcl_no"=>"1204481602000201",
"icbc_appid"=>$this->APP_ID
),
'extraParams'=>[]
];
print_r("<pre>");
var_dump($request);
$res = $this->apiClient->execute($request,$msg_id,"");
$result = json_decode($res,true);
// print_r("<pre>");
// var_dump($res);die;
$r = json_decode($result['order_submit_act_output'],true);
// $result = json_decode($res,true);
var_dump($r);
}
public function setTest(){
$user = Db::name("user")->where("first_leader",629)->select()->toArray();
foreach($user as $key=>$value){
Db::name("user")->where("id",$value['id'])->update(["divide_role_user_id"=>$value['first_leader']]);
$second_user = Db::name("user")->where("first_leader",$value['id'])->select()->toArray();
foreach($second_user as $k=>$v){
Db::name("user")->where("id",$v['id'])->update(["divide_role_user_id"=>$value['first_leader']]);
$third_user = Db::name("user")->where("first_leader",$v['id'])->select()->toArray();
foreach($third_user as $k1=>$v1){
Db::name("user")->where("id",$v1['id'])->update(["divide_role_user_id"=>$value['first_leader']]);
// $four_user = Db::name("user")->where("first_leader",$v1['id'])->select()->toArray();
}
}
}
}
public function getMsgId(){
return substr(md5("donglonghui".time().mt_rand(1,1000000)),8,13);
}
public function abutmentContent(){
$data=[
"app_id"=> $this->app_id,
"timestamp"=>date("Y-m-dH:i:s"),
"notify_url"=>"https://dlh.hainings.com/index/index/localReturn"
];
ksort($data);
print("<pre>");
var_dump($data);
$data['msg_id'] = $this->getId("donglonghui",$data);
$data1 = http_build_query($data);
$url = "https://gw.open.icbc.com.cn/api/mybank/enterprise/pay/payent/V1";
$res = $this->curl_post($url,$data1);
// var_dump($res);
$data['sign'] = $res['sign'];
// var_dump($data);
$d=[
"channelFlag"=>2,
"empowerPhone"=>"18868040087",
"applyType"=>"00100",
"crftType1"=>"101",
"crftNo1"=>"914310236828465718"
];
$u = "https://gw.open.icbc.com.cn/api/mybank/cardbusiness/shop/MerRegistrationAdd/V1";
$d1= http_build_query($d);
$rest = $this->curl_post($u,$d1);
var_dump($rest);
}
function getId($app_secret, $req_param=[])
{
// 排序所有请求参数
ksort($req_param);
$src_value = "";
// 按照key1value1key2value2...keynvaluen拼接
foreach ($req_param as $key => $value) {
$src_value .= ($key . $value);
}
//计算md5
return md5($app_secret . $src_value . $app_secret);
}
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/x-www-form-urlencoded'));
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;
}
}