690 lines
30 KiB
PHP
Executable File
690 lines
30 KiB
PHP
Executable File
<?php
|
||
|
||
namespace app\api\controller;
|
||
|
||
use app\common\basics\Api;
|
||
use app\common\server\JsonServer;
|
||
use app\common\model\user\User;
|
||
use app\common\model\user\UserAuth;
|
||
use IcbcConstants;
|
||
use think\App;
|
||
use think\Request;
|
||
use DefaultIcbcClient;
|
||
use UiIcbcClient;
|
||
use think\facade\Db;
|
||
use weixin\Getopenid;
|
||
use app\api\logic\DistributionLogic;
|
||
use app\common\model\distribution\DistributionOrderGoods;
|
||
use app\common\model\AccountLog;
|
||
use think\facade\Log;
|
||
|
||
include_once "../vendor/icbc-api-sdk-cop-php/DefaultIcbcClient.php";
|
||
include_once "../vendor/icbc-api-sdk-cop-php/UiIcbcClient.php";
|
||
class Abutment extends Api
|
||
{
|
||
public $like_not_need_login = ['payTest','payTestCheck','changeGoods','chaifen','tuikuan','jiedong','jiedongCheck','testRechage', 'code', ];
|
||
|
||
public function testRechage(){
|
||
$user = Db::name("user")->where("id",979)->find();
|
||
$divide_second_user_msg = Db::name("user")->where("id",$user['divide_second_user_id'])->find();
|
||
$regional_state = 0;
|
||
if($divide_second_user_msg != null){
|
||
$regional_state = $divide_second_user_msg['regional_state'];
|
||
}
|
||
$performance_person = 0;
|
||
$performance = 0;
|
||
if($regional_state == 1){
|
||
$performance = $user['regional_percent'];
|
||
$performance_person = round(100 * $performance / 100, 8);
|
||
// Order::where('id', $order['id'])
|
||
// ->inc('distribution_money',$performance_person)->update();
|
||
// $shopDistribution_msg = UserShopDistribution::where('shop_id', $value['shop_id'])
|
||
// ->find();
|
||
$r1= User::where('id', $user['divide_second_user_id'])
|
||
->inc('earnings', $performance_person)->update();
|
||
var_dump($r1);
|
||
$earnings_buy = AccountLog::where('user_id', $user['divide_second_user_id'])->order("create_time desc")->limit(1)->value('left_amount');
|
||
$sn = createSn('account_log', 'log_sn', '', 4);
|
||
$r2= AccountLog::create([
|
||
'log_sn' => $sn,
|
||
'user_id' => $user['divide_second_user_id'],
|
||
'source_type' => AccountLog::billions_inc_earnings,
|
||
'source_id' => 1,
|
||
'source_sn' => 1,
|
||
'change_amount' => $performance_person,
|
||
'left_amount' => $earnings_buy + $performance_person,
|
||
'change_type' => 1,
|
||
'remark' => '百亿返补销售人员佣金增加'
|
||
]);
|
||
var_dump($r2);
|
||
$r3=DistributionOrderGoods::create([
|
||
'sn' => $sn,
|
||
'user_id' => $user['divide_second_user_id'],
|
||
'ratio' => $performance,
|
||
'order_id' => 1,
|
||
'order_goods_id' => 1,
|
||
'goods_num' => 1,
|
||
'money' => $performance_person,
|
||
'status' => 2,
|
||
'create_time' => time(),
|
||
'shop_id' => 1,
|
||
'settlement_time' => time()
|
||
]);
|
||
var_dump($r3);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
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 payTest($user_id="979",$money="1",$decive_info="111"){
|
||
|
||
$merchant = 70; //商户获取金额比例
|
||
$our = 5; //服务费
|
||
$other = 3; // 其他分销推广人员费用
|
||
$user_billions = 22; // 其他+服务费
|
||
$user_msg = UserAuth::where("user_id",$user_id)->find();
|
||
$msg_id = $this->getMsgId();
|
||
// var_dump($msg_id);
|
||
$out = "dlh".time().$user_id;
|
||
$out1 = "dlh".time().$user_id."1";
|
||
$out2 = "dlh".time().$user_id."2";
|
||
$out3 = "dlh".time().$user_id."3";
|
||
$out4 = "dlh".time().$user_id."4";
|
||
$ip = '';
|
||
if (isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP'] != 'unknown') {
|
||
// 判断是否有HTTP_CLIENT_IP这个请求头,存在优先使用
|
||
$ip = $_SERVER['HTTP_CLIENT_IP'];
|
||
} elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != 'unknown') {
|
||
// 判断是否有HTTP_X_FORWARDED_FOR这个请求头,存在优先使用
|
||
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||
} elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] != 'unknown') {
|
||
// 获取REMOTE_ADDR这个服务器变量
|
||
$ip = $_SERVER['REMOTE_ADDR'];
|
||
}
|
||
$orig_date_time = date("Y-m-d\TH:i:s");
|
||
$mer_url = "https://dlh.hainings.com/index/index/localReturn";
|
||
$shop_appid = "wx586d77b9edb0636d";
|
||
$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"=>$orig_date_time,
|
||
"decive_info"=>$decive_info,
|
||
"body"=>"东龙汇",
|
||
"fee_type"=>"001",
|
||
"spbill_create_ip"=>$ip,
|
||
"total_fee"=>strval($money*100),
|
||
"mer_url"=>$mer_url,
|
||
"notify_type"=>"HS",
|
||
"shop_appid"=>$shop_appid,
|
||
"icbc_appid"=>$this->APP_ID,
|
||
"open_id"=>$user_msg['openid'],
|
||
"expire_time"=>"300",
|
||
"is_suborder"=>"1",
|
||
"order_num"=>"4",
|
||
"order_submit_act_input"=>array(
|
||
array(
|
||
"rec_num"=>"1",
|
||
"sub_order_id"=>$out1,
|
||
"oper_flag"=>"0",
|
||
"busi_type"=>"1",
|
||
"ori_mer_id"=>"120448160200",
|
||
"seq_no"=>$out,
|
||
"mer_acct"=>"1911025009202050845",
|
||
"ori_trx_date"=>date("Y-m-d"),
|
||
"sub_mer_id"=>"120448160198",
|
||
"sub_mer_prtcl_no"=>"1204481601980201",
|
||
"classify_amt"=>strval($money*$merchant)
|
||
),
|
||
array(
|
||
"rec_num"=>"2",
|
||
"sub_order_id"=>$out2,
|
||
"oper_flag"=>"0",
|
||
"busi_type"=>"1",
|
||
"ori_mer_id"=>"120448160200",
|
||
"seq_no"=>$out,
|
||
"mer_acct"=>"1204068809100138961",
|
||
"ori_trx_date"=>date("Y-m-d"),
|
||
"sub_mer_id"=>"120448160201",
|
||
"sub_mer_prtcl_no"=>"1204481602010201",
|
||
"classify_amt"=>strval($money*$our)
|
||
),
|
||
array(
|
||
"rec_num"=>"3",
|
||
"sub_order_id"=>$out3,
|
||
"oper_flag"=>"0",
|
||
"busi_type"=>"1",
|
||
"ori_mer_id"=>"120448160200",
|
||
"seq_no"=>$out,
|
||
"mer_acct"=>"1204064019200152507",
|
||
"ori_trx_date"=>date("Y-m-d"),
|
||
"sub_mer_id"=>"120448160202",
|
||
"sub_mer_prtcl_no"=>"1204481602020201",
|
||
"classify_amt"=>strval($money*$other)
|
||
),
|
||
array(
|
||
"rec_num"=>"4",
|
||
"sub_order_id"=>$out4,
|
||
"oper_flag"=>"0",
|
||
"busi_type"=>"1",
|
||
"ori_mer_id"=>"120448160200",
|
||
"seq_no"=>$out,
|
||
"mer_acct"=>"1204064419000115357",
|
||
"ori_trx_date"=>date("Y-m-d"),
|
||
"sub_mer_id"=>"120448160203",
|
||
"sub_mer_prtcl_no"=>"1204481602030201",
|
||
"classify_amt"=>strval($money*$user_billions)
|
||
)
|
||
)
|
||
),
|
||
'extraParams'=>[]
|
||
];
|
||
// $res = $this->apiClient->execute($request,$msg_id,"");
|
||
// print_r("<pre>");
|
||
// var_dump($request);
|
||
$data['mer_id'] = "120448160200";
|
||
$data['ser_id'] = "120400005722";
|
||
$data['out_trade_no'] = $out;
|
||
$data['pay_mode'] = "9";
|
||
$data['access_type'] = "9";
|
||
$data['mer_prtcl_no'] = "1204481602000201";
|
||
$data['orig_date_time'] = $orig_date_time;
|
||
$data['spbill_create_ip'] = $ip;
|
||
$data['decive_info'] = $decive_info;
|
||
$data['total_fee'] = $money;
|
||
$data['fee_type'] = "001";
|
||
$data['mer_url'] = $mer_url;
|
||
$data['notify_type'] = "HS";
|
||
$data['shop_appid'] = $shop_appid;
|
||
$data['icbc_appid'] = $this->APP_ID;
|
||
$data['user_id'] = $user_id;
|
||
$data['open_id'] = $user_msg['openid'];
|
||
$data['dtime'] = date("Y-m-d H:i:s");
|
||
$rest = Db::name("abutment_log")->save($data);
|
||
|
||
$data1['rec_num'] = "1";
|
||
$data1['seq_no'] = $out;
|
||
$data1['sub_order_id'] = $out1;
|
||
$data1['oper_flag'] = "0";
|
||
$data1['busi_type'] = "1";
|
||
$data1['sub_mer_id'] = "120448160198";
|
||
$data1['sub_mer_prtcl_no'] = "1204481601980201";
|
||
$data1['classify_amt'] = $money*$merchant;
|
||
$data1['user_id'] = $user_id;
|
||
$data1['open_id'] = $user_msg['openid'];
|
||
$data1['dtime'] = date("Y-m-d H:i:s");
|
||
$rest = Db::name("abutment_log")->save($data1);
|
||
|
||
$data2['rec_num'] = "2";
|
||
$data2['seq_no'] = $out;
|
||
$data2['sub_order_id'] = $out2;
|
||
$data2['oper_flag'] = "0";
|
||
$data2['busi_type'] = "1";
|
||
$data2['sub_mer_id'] = "120448160201";
|
||
$data2['sub_mer_prtcl_no'] = "1204481602010201";
|
||
$data2['classify_amt'] = $money*$our;
|
||
$data2['user_id'] = $user_id;
|
||
$data2['open_id'] = $user_msg['openid'];
|
||
$data2['dtime'] = date("Y-m-d H:i:s");
|
||
$rest = Db::name("abutment_log")->save($data2);
|
||
|
||
$data3['rec_num'] = "3";
|
||
$data3['seq_no'] = $out;
|
||
$data3['sub_order_id'] = $out3;
|
||
$data3['oper_flag'] = "0";
|
||
$data3['busi_type'] = "1";
|
||
$data3['sub_mer_id'] = "120448160202";
|
||
$data3['sub_mer_prtcl_no'] = "1204481602020201";
|
||
$data3['classify_amt'] = $money*$other;
|
||
$data3['user_id'] = $user_id;
|
||
$data3['open_id'] = $user_msg['openid'];
|
||
$data3['dtime'] = date("Y-m-d H:i:s");
|
||
$rest = Db::name("abutment_log")->save($data3);
|
||
$data4['rec_num'] = "4";
|
||
$data4['seq_no'] = $out;
|
||
$data4['sub_order_id'] = $out4;
|
||
$data4['oper_flag'] = "0";
|
||
$data4['busi_type'] = "1";
|
||
$data4['sub_mer_id'] = "120448160203";
|
||
$data4['sub_mer_prtcl_no'] = "1204481602030201";
|
||
$data4['classify_amt'] = $money*$user_billions;
|
||
$data4['user_id'] = $user_id;
|
||
$data4['open_id'] = $user_msg['openid'];
|
||
$data4['dtime'] = date("Y-m-d H:i:s");
|
||
$rest = Db::name("abutment_log")->save($data4);
|
||
// print_r("<pre>");
|
||
// var_dump($request);die;
|
||
$res = $this->apiClient->execute($request,$msg_id,"");
|
||
$result = json_decode($res,true);
|
||
// print_r("<pre>");
|
||
// var_dump($result);
|
||
$r = json_decode($result['wx_data_package'],true);
|
||
$r['nonceStr'] = $r['noncestr'];
|
||
$r['timeStamp'] = $r['timestamp'];
|
||
$r['paySign'] = $r['sign'];
|
||
return JsonServer::success('查询成功',$r);
|
||
|
||
}
|
||
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"=>"120448160200",
|
||
"deal_flag"=>'0',
|
||
"out_trade_no"=>"dlh1730187196979",
|
||
// "order_id"=>"120448160200000562407290003182",
|
||
"mer_prtcl_no"=>"1204481602000201",
|
||
"icbc_appid"=>$this->APP_ID
|
||
),
|
||
'extraParams'=>[]
|
||
];
|
||
print_r("<pre>");
|
||
var_dump($request);
|
||
$res = $this->apiClient->execute($request,$msg_id,"");
|
||
var_dump($res);
|
||
$result = json_decode($res,true);
|
||
$result = json_decode($res,true);
|
||
// print_r("<pre>");
|
||
var_dump($result);
|
||
$r = json_decode($result['order_submit_act_output'],true);
|
||
|
||
var_dump($r);
|
||
}
|
||
|
||
// 拆分子订单
|
||
public function chaifen(){
|
||
$user_id = 979;
|
||
$out1 = "dlh".$user_id."1".time().rand(100,1);
|
||
$out2 = "dlh".$user_id."2".time().rand(100,1);
|
||
$out3 = "dlh".$user_id."3".time().rand(100,1);
|
||
$merchant = 60; //商户获取金额比例
|
||
$our = 5; //服务费
|
||
$other = 35; // 其他分销推广人员费用
|
||
$all_other = 40; // 其他+服务费
|
||
$msg_id = $this->getMsgId();
|
||
$money = 0.4;
|
||
// $out = "dlh".time().$user_id;
|
||
$request = [
|
||
'serviceUrl' => 'https://gw.open.icbc.com.cn/api/cardbusiness/aggregatepay/b2c/online/sersuborder/V1',
|
||
'method' => 'POST',
|
||
'isNeedEncrypt'=>false,
|
||
'biz_content' => array(
|
||
"mer_id"=>"120400005722",
|
||
// "out_trade_no"=>"dlh1722218442979",
|
||
"mer_prtcl_no"=>"1204481602000201",
|
||
"icbc_appid"=>$this->APP_ID,
|
||
"order_num"=>"3",
|
||
"order_submit_act_input"=>array(
|
||
array(
|
||
"rec_num"=>"1",
|
||
"sub_order_id"=>$out1,
|
||
"oper_flag"=>"0",
|
||
"busi_type"=>"2",
|
||
"ori_mer_id"=>"120448160200",
|
||
"seq_no"=>"120448160200000562407290003182",
|
||
// "seq_no"=>$out,
|
||
"mer_acct"=>"1911025009202050845",
|
||
"ori_trx_date"=>date("Y-m-d"),
|
||
"sub_mer_id"=>"120448160198",
|
||
"sub_mer_prtcl_no"=>"1204481601980201",
|
||
"classify_amt"=>strval(1)
|
||
),
|
||
array(
|
||
"rec_num"=>"2",
|
||
"sub_order_id"=>$out2,
|
||
"oper_flag"=>"0",
|
||
"busi_type"=>"2",
|
||
"ori_mer_id"=>"120448160200",
|
||
"seq_no"=>"120448160200000562407290003182",
|
||
// "seq_no"=>$out,
|
||
"mer_acct"=>"1204068809100138961",
|
||
"ori_trx_date"=>date("Y-m-d"),
|
||
"sub_mer_id"=>"120448160201",
|
||
"sub_mer_prtcl_no"=>"1204481602010201",
|
||
"classify_amt"=>strval(1)
|
||
),
|
||
array(
|
||
"rec_num"=>"3",
|
||
"sub_order_id"=>$out3,
|
||
"oper_flag"=>"0",
|
||
"busi_type"=>"2",
|
||
"ori_mer_id"=>"120448160200",
|
||
"seq_no"=>"120448160200000562407290003182",
|
||
// "seq_no"=>$out,
|
||
"mer_acct"=>"1204064019200152507",
|
||
"ori_trx_date"=>date("Y-m-d"),
|
||
"sub_mer_id"=>"120448160202",
|
||
"sub_mer_prtcl_no"=>"1204481602020201",
|
||
"classify_amt"=>strval(3)
|
||
)
|
||
)
|
||
),
|
||
'extraParams'=>[]
|
||
];
|
||
print_r("<pre>");
|
||
var_dump($request);
|
||
$res = $this->apiClient->execute($request,$msg_id,"");
|
||
var_dump($res);
|
||
// $result = json_decode($res,true);
|
||
$result = json_decode($res,true);
|
||
// print_r("<pre>");
|
||
var_dump($result);
|
||
}
|
||
// 退款
|
||
public function tuikuan(){
|
||
$user_id = 979;
|
||
$out1 = "dlh".time().$user_id."1";
|
||
$out2 = "dlh".time().$user_id."2";
|
||
$out3 = "dlh".time().$user_id."3";
|
||
$merchant = 60; //商户获取金额比例
|
||
$our = 5; //服务费
|
||
$other = 35; // 其他分销推广人员费用
|
||
$all_other = 40; // 其他+服务费
|
||
$msg_id = $this->getMsgId();
|
||
$money = 1;
|
||
// $out = "dlh".time().$user_id;
|
||
$request = [
|
||
'serviceUrl' => 'https://gw.open.icbc.com.cn/api/cardbusiness/aggregatepay/b2c/online/merrefund/V1',
|
||
'method' => 'POST',
|
||
'isNeedEncrypt'=>false,
|
||
'biz_content' => array(
|
||
"mer_id"=>"120448160200",
|
||
"outtrx_serial_no"=>$out1,
|
||
// "out_trade_no"=>"dlh1722239710979",
|
||
"order_id"=>"120448160200000562407290003182",
|
||
"ret_total_amt"=>100,
|
||
"trnsc_ccy"=>"001",
|
||
"mer_prtcl_no"=>"1204481602000201",
|
||
"icbc_appid"=>$this->APP_ID,
|
||
),
|
||
'extraParams'=>[]
|
||
];
|
||
print_r("<pre>");
|
||
var_dump($request);
|
||
$res = $this->apiClient->execute($request,$msg_id,"");
|
||
var_dump($res);
|
||
// $result = json_decode($res,true);
|
||
$result = json_decode($res,true);
|
||
// print_r("<pre>");
|
||
var_dump($result);
|
||
}
|
||
//解冻
|
||
public function jiedong(){
|
||
$msg_id = $this->getMsgId();
|
||
// $out = "dlh".time().$user_id;
|
||
$request = [
|
||
'serviceUrl' => 'https://gw.open.icbc.com.cn/api/mybank/mer/merin/thaw/V1',
|
||
'method' => 'POST',
|
||
'isNeedEncrypt'=>false,
|
||
'biz_content' => array(
|
||
"icbcOrderSubNo"=>"11",
|
||
"icbcOrderNo"=>"120448160200000572410290005130",
|
||
// "outAgreeNo"=>"1204481601980201"
|
||
"outAgreeNo"=>"1204481602020201"
|
||
// "outAgreeNo"=>"1204481602020201"
|
||
),
|
||
'extraParams'=>[]
|
||
];
|
||
print_r("<pre>");
|
||
var_dump($request);
|
||
$res = $this->apiClient->execute($request,$msg_id,"");
|
||
var_dump($res);
|
||
// $result = json_decode($res,true);
|
||
$result = json_decode($res,true);
|
||
// print_r("<pre>");
|
||
var_dump($result);
|
||
}
|
||
//解冻查询
|
||
public function jiedongCheck(){
|
||
$msg_id = $this->getMsgId();
|
||
// $out = "dlh".time().$user_id;
|
||
$request = [
|
||
'serviceUrl' => 'https://gw.open.icbc.com.cn/api/mybank/mer/merin/freezedtlquery/V1',
|
||
'method' => 'POST',
|
||
'isNeedEncrypt'=>false,
|
||
'biz_content' => array(
|
||
"queryType"=>"1",
|
||
"pageNum"=>"1",
|
||
"pageSize"=>"10",
|
||
"initFlag"=>"1",
|
||
"outAgreeNo"=>"1204481602000201",
|
||
"icbcOrderNo"=>"120448160200000512410280005175",
|
||
"icbcOrderSubNo"=>"11",
|
||
"startDate"=>"",
|
||
"endDate"=>""
|
||
),
|
||
'extraParams'=>[]
|
||
];
|
||
print_r("<pre>");
|
||
var_dump($request);
|
||
$res = $this->apiClient->execute($request,$msg_id,"");
|
||
var_dump($res);
|
||
// $result = json_decode($res,true);
|
||
$result = json_decode($res,true);
|
||
// print_r("<pre>");
|
||
var_dump($result);
|
||
}
|
||
|
||
public function code()
|
||
{
|
||
// Log::write('测试:'. 111);
|
||
$code = $this->request->post('code');
|
||
$lid = $this->request->post('lid',0);
|
||
$local_user = Db::name("local_store")->where("lstore_id",$lid)->where("is_delete",0)->find();
|
||
if($local_user == null){
|
||
return JsonServer::error("无效店铺");
|
||
}
|
||
$local_user_msg = Db::name("user")
|
||
->where("id",$local_user['user_id'])
|
||
->where("del",0)
|
||
->where("disable",0)
|
||
->find();
|
||
if($local_user_msg == null){
|
||
return JsonServer::error("无效账号");
|
||
}
|
||
$invite_code = $local_user_msg['distribution_code'];
|
||
// $invite_code = $this->request->post('invite_code',0);
|
||
// trace('invite_code', $invite_code.'-'.$code);
|
||
if(isset($invite_code)){
|
||
if($invite_code !== 0){
|
||
$open=new Getopenid();
|
||
$info=$open->getAcc($code);
|
||
$divide_state = 0;
|
||
$regional_state = 0;
|
||
if(isset($info['openid'])) {
|
||
$openid = $info['openid'];
|
||
$user_msg = UserAuth::where("openid",$openid)->find();
|
||
$firend_msg = User::where("distribution_code",$invite_code)->find();
|
||
if($user_msg==null){
|
||
$divide_second_user_id = 0;
|
||
$divide_role_user_id = 0;
|
||
$firend_id = 0;
|
||
$is_d = Db::name("distribution")->where('user_id', $firend_msg['id'] )->where('is_distribution', 1 )->find();
|
||
if($is_d != null){
|
||
$firend_id = $firend_msg['id'];
|
||
if($firend_msg['divide_role_user_id']!==0){
|
||
$divide_role_user_id = $firend_msg['divide_role_user_id'];
|
||
$divide_state = 1;
|
||
}
|
||
// else{
|
||
// if($firend_msg['first_leader'] !=0){
|
||
// $divide_role_user_id = $firend_msg['first_leader'];
|
||
// }else{
|
||
// $divide_role_user_id = $firend_id;
|
||
// }
|
||
// }
|
||
if($firend_msg['regional_state'] === 1){
|
||
$divide_second_user_id = $firend_msg['id'];
|
||
$regional_state = 1;
|
||
}elseif($firend_msg['divide_second_user_id']!==0){
|
||
$divide_second_user_id = $firend_msg['divide_second_user_id'];
|
||
$regional_state = 1;
|
||
}
|
||
}
|
||
$data = [
|
||
'sn' => create_user_sn(),
|
||
'create_time' => time(),
|
||
"first_leader" => $firend_id,
|
||
'distribution_code' => generate_invite_code(),//分销邀请码
|
||
'is_distribution' => DistributionLogic::isDistributionMember(),
|
||
'client' => 1,
|
||
'is_new_user' => 1,
|
||
'user_ad_cret' => 1,
|
||
'divide_role_user_id' => $divide_role_user_id,
|
||
'divide_second_user_id'=>$divide_second_user_id,
|
||
'divide_state' => $divide_state,
|
||
'regional_state'=>$regional_state
|
||
];
|
||
$user = User::create($data);
|
||
$user_id = $user->id;
|
||
$UserAuth = UserAuth::create([
|
||
"user_id"=>$user_id,
|
||
"openid"=>$openid,
|
||
"create_time"=>time(),
|
||
"client"=>1
|
||
]);
|
||
if($is_d != null){
|
||
$firend_id = $firend_msg['id'];
|
||
$dat['f_user_id'] = $firend_id;
|
||
$dat['user_id'] = $user_id;
|
||
$dat['ditme'] = date("Y-m-d H:i:s");
|
||
Db::name("user_firster")->save($dat);
|
||
}
|
||
//生成会员分销扩展表
|
||
DistributionLogic::createUserDistribution($user_id);
|
||
|
||
// 生成分销基础信息表
|
||
\app\common\logic\DistributionLogic::add($user_id);
|
||
$dt['user_id'] = $user_id;
|
||
return JsonServer::success('绑定上级成功',$dt);
|
||
|
||
}
|
||
$dt['user_id'] = $user_msg['user_id'];
|
||
return JsonServer::success('绑定上级成功',$dt);
|
||
}
|
||
}
|
||
}
|
||
return JsonServer::success('绑定上级成功',[]);
|
||
}
|
||
|
||
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);
|
||
}
|
||
|
||
public function changeGoods(){
|
||
$result = Db::name("goods")->where("shop_id",17)->select();
|
||
foreach($result as $key=>$value){
|
||
$r = Db::name("goods_item")->where("goods_id",$value['id'])->select();
|
||
foreach($r as $k=>$v){
|
||
$price = round($v['chengben_price']*1.7,2);
|
||
if($price < $v['price']){
|
||
Db::name("goods_item")->where("id",$v['id'])->update(["price"=>$price]);
|
||
}
|
||
if($price < $value['min_price']){
|
||
Db::name("goods")->where("id",$value['id'])->update(["min_price"=>$price]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
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;
|
||
}
|
||
|
||
} |