260 lines
12 KiB
PHP
Executable File
260 lines
12 KiB
PHP
Executable File
<?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;
|
||
}
|
||
} |