action(); // $param=func_get_args(); // if(strpos($actionName, '_cardbuy') !== false){ // if(!method_exists($this,$actionName)){ //// $param = request()->param(); // $this->cardbuy($param); // } // } // // } public function cardbuy($param) { var_dump($param);die; } public function btwaf() { // $m_oldIpWhite_data = MerchantService::instance()->db()->field('ip_white')->where(['id'=>6])->find(); //// $m_oldIpWhite = $m_oldIpWhite_data['ip_white']; // if($m_oldIpWhite_data && isset($m_oldIpWhite_data['ip_white']) && $m_oldIpWhite_data['ip_white']){ // $old_ip_white_array = $m_oldIpWhite_data['ip_white']?explode(',', $m_oldIpWhite_data['ip_white']):[]; // $ip_white_array = [ // '223.5.5.5','122.234.200.204' // ]; // foreach ($old_ip_white_array as $k => $v) { // if(in_array($old_ip_white_array[$k], $ip_white_array)){ // var_dump($old_ip_white_array[$k]); // } // // } // } // var_dump(123);die; // $inf= '{"name":"ip白名单","servers":["apis.gcdat.com"],"status":1,"is_global":0,"priority":0,"root":{"logic":"or","type":"block","option":null,"children":[{"logic":"and","type":"block","option":null,"children":[{"type":"option","logic":"","children":[],"option":{"type":"ip","operator":"eq","left_factor":"","right_factor":"125.122.178.235"}}]},{"logic":"and","type":"block","option":null,"children":[{"type":"option","logic":"","children":[],"option":{"type":"ip","operator":"eq","left_factor":"","right_factor":"1.1.1.1"}}]},{"logic":"and","type":"block","option":null,"children":[{"type":"option","logic":"","children":[],"option":{"type":"ip","operator":"eq","left_factor":"","right_factor":"223.5.5.5"}}]}]},"action":{"type":"allow","response":{"type":"","response_id":0,"status":0,"headers":{},"body":""}}}'; // var_dump(json_decode($inf,true));die; $api_domain = 'apis.gcdat.com'; $ip_white_data = '223.5.5.5,1.1.1.1,8.9.9.9'; $ip_white_array = $ip_white_data ? explode(',', $ip_white_data) : []; $bt = new BtWafService(); $list = $bt->get_customize_list(); $ip_white_id = ''; if ($list) { $rule_list = $list['msg']['rules']; $name = 'ip白名单-' . '3'; foreach ($rule_list as $k => $v) { if ($v['name'] == $name) { $ip_white_id = $k; break; } } } if ($ip_white_id) { $data = $bt->update_waf_whiteIp($ip_white_id, $name, $api_domain, $ip_white_array); var_dump($data); }else{ $data = $bt->update_waf_whiteIp('', $name, $api_domain, $ip_white_array); var_dump($data); } die; $bt = new BtWafService(); $list = $bt->get_customize_list(); $ip_white_id = ''; if($list){ $rule_list = $list['msg']['rules']; $name = 'ip白名单-'.'1'; foreach ($rule_list as $k=>$v){ if($v['name'] == $name){ $ip_white_id = $k; break; } } var_dump($list); } if($ip_white_id){ var_dump($ip_white_id); } // var_dump($rule_list); } public function check_oar() { $orderAutoService = OrderAutoService::instance(); $use = $orderAutoService->get('GC202410015956625258801961'); $use_product[] = 51; foreach ($use as $k => $v) { $use_product[] = $v['pid']; } $product_data = MerchantProductService::instance()->getAll(6, 'ydcz'); $where['mid'] = 6; $where['pid'] = $use_product[0]; $data1 = MerchantProductService::instance()->db()->where($where)->find(); if ($product_data) { foreach ($product_data as $k => $v) { if ($v['cash']) { if ($isp && (strstr($v['cash'], '联通') || strstr($v['cash'], '移动') || strstr($v['cash'], '电信'))) { $cash = $isp; } $temp = explode(',', $v['cash']); if (!in_array($cash, $temp)) { continue; } } if (!$data1) { $data1 = ['sort' => '10']; } if (!in_array($v['pid'], $use_product) && $v['sort'] < $data1['sort']) { return $v['pid']; } } } var_dump($this->use_product); } public function check_merchant_limit() { $mid = input('mid'); $count = OrderBase::instance()->countMerchantCash($mid); var_dump($count); } # 计算利润 public function profit() { $day = input('day'); if (!$day) { $day = date('Y-m-d', strtotime('-1 day')); } // $orderHistoryService = OrderHistoryService::instance(); $orderHistoryService = OrderLastHistoryService::instance(); $data = $orderHistoryService->getTotalData($day); // var_dump($data); if ($data) { StatService::instance()->handle($day, $data); } } public function upblacks() { $infoArray = BlackCardService::instance()->db()->select()->toArray(); foreach ($infoArray as $k=>$v){ if(str_contains($v['desc'], ":")){ $order_id = explode(':', $v['desc']); if(str_contains($order_id[1], "C")){ // var_dump($order[1]);die; $order = OrderLastHistoryService::instance(); $info = $order->db()->field('mid,merchant_order_id,mid,param,order_id')->where(['order_id' => $order_id[1]])->find(); if(!$info){ $order = OrderTwoHistoryService::instance(); $info = $order->db()->field('mid,merchant_order_id,mid,param,order_id')->where(['order_id' => $order_id[1]])->find(); } if(!$info){ $order = OrderHistoryService::instance(); $info = $order->db()->field('mid,merchant_order_id,mid,param,order_id')->where(['order_id' => $order_id[1]])->find(); } if($info){ $param = json_decode($info['param'],true); $merchant = MerchantService::instance()->get($info['mid']); $Seesionkey = $merchant['refresh_token'];#淘宝此token为直充系统授权token $request = []; $request['agentId'] = $merchant['agentId']; $request['agentkey'] = $merchant['agentkey']; if(isset($merchant['other_param']) && $merchant['other_param'] && str_contains($merchant['other_param'], "reapi_appkey")) { $other_param = json_decode($merchant['other_param'], true); $request['agentId'] = $other_param['reapi_appkey']; $request['agentkey'] = $other_param['reapi_appsecret']; $Seesionkey = $merchant['access_token']; } $request['tid'] = $info['merchant_order_id']; $request['access_token'] = $Seesionkey; $response = Coretb::taobaosdk('getByTrade',$request); $json = json_encode($response); $array = json_decode($json,true); if(is_array($array)){ if(isset($array['open_uid']) && $array['open_uid']){ $uid = $array['open_uid']; BlackCardService::instance()->db()->where(array('id' => $v['id']))->update(['value'=>$uid]); // var_dump($uid); } } } } // $infoss = json_decode($v,true); } // var_dump($data);die; } } public function test() { $begin = '2024-08-06 00:00:00'; $after = '2024-08-06 23:59:59'; $orderHistoryService = OrderLastHistoryService::instance(); $time = [$begin, $after]; // $db =Db::name('daxiangka_heidui'); // $db = $orderHistoryService->db()->whereRaw('status in(3) and cid = 5'); // $data = $db->whereBetween('create_at', $time)->order('id asc')->select()->toArray(); $data = Db::name('baka_hedui')->select(); foreach ($data as $k => $v) { $id_order = $orderHistoryService->db()->whereRaw('status = 2 and cid = 8 and channel_order_id like '.$v['channel_order_id'])->find(); // if() $sd = Db::name('daxiangka_heidui')->where(['order_id' => $v['order_id']])->delete(); // var_dump($id_order['order_id']); // $id_order = $orderHistoryService->db()->whereBetween('create_at', $time)->whereRaw('status in(2) and cid = 5')->where(['merchant_order_id' => $v['merchant_order_id']])->findOrEmpty(); if (!$id_order) { var_dump($v); // var_dump($v['merchant_order_id']); } } } public function daxk() { $begin = '2024-08-06 00:00:00'; $after = '2024-08-06 23:59:59'; $orderHistoryService = OrderLastHistoryService::instance(); $time = [$begin, $after]; // $db =Db::name('daxiangka_heidui'); $db = $orderHistoryService->db()->whereRaw('status in(3) and cid = 5'); $data = $db->whereBetween('create_at', $time)->order('id asc')->select()->toArray(); // $data = Db::name('daxiangka_heidui')->select(); foreach ($data as $k => $v) { $id_order = Db::name('daxiangka_heidui')->where(['merchant_order_id' => $v['merchant_order_id']])->find(); // $id_order = $orderHistoryService->db()->whereBetween('create_at', $time)->whereRaw('status in(2) and cid = 5')->where(['merchant_order_id' => $v['merchant_order_id']])->findOrEmpty(); if($id_order){ var_dump($id_order); // var_dump($v['merchant_order_id']); } // foreach ($id_order as $ks => $vs) { // //// var_dump($sd);die; //// //// $id = $vs['merchant_order_id']; //// unset($vs['id']); // // $state = Db::name('test_error')->insert($vs); // if ($state) { // $sd = Db::name('daxiangka_heidui')->where(['order_id' => $vs['order_id']])->delete(); // } //// $jine = $jine+($v['count']-1)*$v['cash']; //// $jine = $jine+($v['count']-1); //// var_dump($v);die; // // } // $jine = $jine+($v['count']-1)*$v['cash']; // $jine = $jine+($v['count']-1); // var_dump($v);die; } die; // $db = $orderHistoryService->db()->whereRaw('status in(2) and cid = 5'); // $data = $db->whereBetween('create_at', $time)->order('id asc')->select()->toArray(); // $data = $db->field('*, COUNT(*) as count') // ->group('merchant_order_id') // ->having('count > 1') // ->select(); // $jine = 0; //// // foreach ($data as $k => $v) { //// $jine = $jine+($v['count']-1)*$v['cash']; // $jine = $jine+($v['count']-1); //// var_dump($v);die; // // } // // var_dump($jine);die; // $db =Db::name('daxiangka_heidui'); $s = $db->field('*, COUNT(*) as count') ->group('merchant_order_id') ->having('count > 1') ->select(); var_dump($s);die; $jine = 0; // foreach ($s as $k => $v) { $id_order = Db::name('daxiangka_heidui')->where(['merchant_order_id' => $v['merchant_order_id']])->select()->toArray(); foreach ($id_order as $ks => $vs) { // var_dump($sd);die; // // $id = $vs['merchant_order_id']; // unset($vs['id']); $state = Db::name('test_error')->insert($vs); if ($state) { $sd = Db::name('daxiangka_heidui')->where(['order_id' => $vs['order_id']])->delete(); } // $jine = $jine+($v['count']-1)*$v['cash']; // $jine = $jine+($v['count']-1); // var_dump($v);die; } // $jine = $jine+($v['count']-1)*$v['cash']; // $jine = $jine+($v['count']-1); // var_dump($v);die; } var_dump($jine); } public function kaidianbao_query() { $merchant_order = input('merchant_order_id'); $request['shop_id'] = input('mid'); $request['bill_id'] = $merchant_order; $request['time_stamp'] =date('YmdHis'); $signature_string = ''; foreach ($request as $k => $v) { // if (isset($request[$v]) && $request[$v]) { $signature_string .= $k . '=' . $v . '&'; } $signature_string = substr($signature_string, 0, -1); $signature_string .= '|||'.(input('token')); // var_dump($signature_string);die; // $signature_string = iconv("UTF-8", "gbk", $signature_string); $request['sign'] = md5($signature_string); $url = 'http://papi.sx92577.com/api/UCardFetchQuery'; $response = http_get($url,$request); $pairs = explode('&', $response); $array = []; foreach ($pairs as $pair) { // 分割键和值 list($key, $value) = explode('=', $pair); // 解码键和值 $array[urldecode($key)] = urldecode($value); } $result = array(); // $result['status'] = 4; if (isset($array['ret_code']) && $array['ret_code'] == '0') { if (isset($array['card_no_data'])) { $cipher = "des-ede3"; // 3des-ebc 使用的是des-ede3算法 $mode = "ebc"; // 工作模式为ebc $iv = ""; // EBC模式不需要IV,留空即可 $deskey = input('deskey'); $kami = openssl_decrypt(hex2bin($array['card_no_data']), $cipher, $deskey, $options=OPENSSL_RAW_DATA, $iv); // 输出解密后的字符串 $kami = explode(',', $kami); $kamidata = [ 'cardno' => $kami[0], 'cardpwd' => $kami[1], 'expired' => $kami[2], ]; var_dump($kamidata);die; } } var_dump($array); } public function stat_amount() { $day = input('day'); if (!$day) { $day = date('Y-m-d', strtotime('-1 day')); // var_dump($day);die; } // $orderHistoryService = OrderHistoryService::instance(); $orderHistoryService = OrderLastweekHistoryService::instance(); // if (!$day) { // $day = date('Y-m-d', strtotime('-1 day')); // } $begin = $day . ' 00:00:00'; $after = $day . ' 23:59:59'; // $begin = '2024-08-01' . ' 00:00:00'; // $after = $day . ' 23:59:59'; $time = [$begin, $after]; $db = $orderHistoryService->db()->whereRaw('status in(2,3) '); $where = array(); if ($where) { $db->where($where); } $data = $db->whereBetween('create_at', $time)->field('cash,mid,cid,id,order_id,actual_cash,product_key,account,status,isp')->order('id asc')->select()->toArray(); // var_dump($data);die; if ($data) { $productService = ProductService::instance(); $zhekou = PercentService::instance(); $merchant = MerchantService::instance(); // $rule = $zhekou->get(1, 'jxk_cardbuy'); // var_dump($rule);die; foreach ($data as $k => $v) { $rule = $zhekou->get($v['mid'], $v['product_key']); if ($rule && $rule['percent']) { $percent = $rule['percent']; if (isset($rule['percent_type']) && $rule['percent_type']) { $percent_type = $rule['percent_type']; } $percent = $merchant->getPercent($percent, $v['account'], $v['product_key'], $v['cash'], $rule['rule'], $v['isp']); }else{ $info = $merchant->getInfo($v['mid']); $percent=$info['percent']; $percent_type= 1; } if ($percent > 0) { if ($percent_type == 2) { $new_cash = $percent; } else { $new_cash = $percent*$v['cash']; } } // var_dump($new_cash); $orderHistoryService->db()->where(['order_id'=>$v['order_id']])->update(['actual_cash'=>$new_cash]); // var_dump($expression);die; } die; # 检查是否是固定数值 // var_dump($product);die; } print_r($data); } public function test_daochu(){ $data = Db::name('test_daochu')->whereNull('cardno')->select()->toArray(); foreach ($data as $k => $v) { $order = Db::name('merchant_order_lastweek_history')->where(['merchant_order_id'=>$v['merchant_order_id']])->field('merchant_order_id,order_id,mid,response,channel_callback_msg,status')->find(); if(!$order){ $order = Db::name('merchant_order_last_history')->where(['merchant_order_id'=>$v['merchant_order_id']])->field('merchant_order_id,order_id,mid,response,channel_callback_msg,status')->find(); } if(!$order){ $order = Db::name('merchant_order_two_history')->where(['merchant_order_id'=>$v['merchant_order_id']])->field('merchant_order_id,order_id,mid,response,channel_callback_msg,status')->find(); } if(!$order){ var_dump($v);continue; } if($order){ $response = json_decode($order['response'],true); if(isset($response['kami'])){ $up = [ 'cardno'=>$response['kami']['cardno'], 'cardpwd'=>$response['kami']['cardpwd'] ]; }else{ $json = json_decode($$order['channel_callback_msg'],true); if(isset($json['kami'])){ $up = [ 'cardno'=>$json['kami']['cardno'], 'cardpwd'=>$json['kami']['cardpwd'] ]; } } if(!$up){ var_dump($v);continue; } if($up){ Db::name('test_daochu')->where(['merchant_order_id'=>$v['merchant_order_id']])->update($up); } } } } public function taobao_notify(){ $input = input(); $merchant_order_id = $input['merchant_order_id']; $order = Db::name('merchant_order')->where(['merchant_order_id'=>$merchant_order_id])->find(); // if($order['status'] == 2){ // #成功1 // // $apiParams['coop_order_status'] = 'SUCCESS'; // //// $rsp_info = ''; // } elseif ($order['status'] == 3) { // # 失败... // // $apiParams['coop_order_status'] = 'FAILED'; // $apiParams['failed_code'] = '0503'; // $apiParams['failed_reason'] = '充值失败'; // } // //// // // } // // $taobao=new \app\openapi\controller\Taobao($this->app); // $msg = $taobao ->notify($url,$param['merchant_order_id'] ,$merchant,$apiParams); } public function upkami() { $group_id = input('group_id'); $mid = input('mid'); $data = DB::name('ssss1234')->whereLike('status', '%已锁定%')->select()->toArray(); foreach ($data as $vo) { // $m = DB::name('ssss1234')->whereLike('order', $vo['order'])->select()->toArray();//这个查出来的是很多 // var_dump($vo);die;//还不行? #这个出来的是有空格的,我要去掉空格hao空格可能好长的那种;等会把身份证给我我要去程序员客栈认证//////可以吗? $pattern = '/\s+/'; // $cardno = trim($pattern,'', $vo['卡号']);//正则判断去掉所有空格 $cardno = trim($vo['卡号']);//这是去掉首尾的空格 $cardpwd = trim( $vo['卡密']); $cash = trim($vo['面值']); $experid = rtrim($vo['过期时间']);#这个前面空格保留,我要去掉最后面的空格比如2024-04-09 12:00:00 我要去掉00后面的空格 #宝蓝那边的问题是这个原因吗/1 $KamiService = KamiService::instance(); // var_dump($cardno); $upkami = $KamiService->upKami($cardno, $cardpwd, $cash,$experid,$group_id,$mid); if($upkami){ Db::name('ssss1234')->whereLike('order', $vo['order'])->delete();//这个用like会不会太范了?不会,因为order是唯一只是怕空格影响 }else{ #判断是否为之前的订单二锁定二次销售 $data = array(); $data['cnum'] = $cardno; $data['cpwd'] = $cardpwd; $data['value'] = $cash; // $data['kami_group_id'] = $sid; $info = $KamiService->db()->where($data)->find(); if($info && $info['use'] == 2){ #更新为1 $KamiService->db()->where($data)->update(['use'=>1]); var_dump($cardno); $erorder = $KamiService->db()->where($data)->find(); if($erorder['use'] == 1){ Db::name('ssss1234')->whereLike('order', $vo['order'])->delete();//这个用like会不会太范了?不会,因为order是唯一只是怕空格 } // 影响 } } // var_dump($upkami);die; } } public function refuse() { $merchant_order_id = '2152497721850058778'; $merchant = MerchantService::instance()->get(1); $app_data = json_decode($merchant['other_param'],true); // $request['agentId'] = '34615444'; // $request['agentkey'] = '2e59a0c00b4fafd9ae46bedced6eccc3'; $request['agentId'] = $app_data['reapi_appkey']; $request['agentkey'] = $app_data['reapi_appsecret']; $request['access_token'] = $merchant['access_token']; $request['refund_id'] = "156290305490057887"; $request['RefuseMessage'] = "测试一下"; $request['tid'] = $merchant_order_id; $request['oid'] = $merchant_order_id; $request['proof'] = "/www/sites/reapi/index/extend/refuse/QN_2137603910451763869.jpg"; $request['Phase'] = "aftersale"; $request['RefundVersion'] = "1715680501592"; $request['refuse_reason_id'] = "999"; //附件上传的机制参见PHP CURL文档,在文件路径前加@符号即可 // $request; $requests = \app\openapi\controller\Coretb::taobaosdk("refundRefuse", $request); var_dump($requests); } public function chuli_bug(){ $yema = input('yema'); $order = Db::name('merchant_order')->where(['status'=>'7','cid'=>4])->page($yema,20)->select()->toArray(); $LockCardService = LockCardService::instance(); foreach ($order as $vo => $value) { $response = json_decode($value['response'], true); $cardno = $response['kami']['cardno']; $cardpwd = $response['kami']['cardpwd']; $expire_time = $response['kami']['expired']; $suoka = $LockCardService->call('suoka', $value['cid'], $cardno, $cardpwd, $value['pid'], $value['cash']); var_dump($value['order_id'].'状态:'.$suoka); if ($suoka == 'ok' || $suoka == 'old_ok') { Db::name('merchant_order')->where(['order_id'=>$value['order_id']])->update(['status'=>'3']); } } } public function lock_card(){ $order_id = input('order_id'); $order = Db::name('merchant_order')->where(['order_id'=>$order_id])->find(); $LockCardService = LockCardService::instance(); $response = json_decode($order['response'], true); $cardno = $response['kami']['cardno']; $cardpwd = $response['kami']['cardpwd']; $expire_time = $response['kami']['expired']; $suoka = $LockCardService->call('suoka', $order['cid'], $cardno, $cardpwd, $order['pid'], $order['cash']); var_dump($value['order_id'].'状态:'.$suoka); if ($suoka == 'ok' || $suoka == 'old_ok') { Db::name('merchant_order')->where(['order_id'=>$value['order_id']])->update(['status'=>'3']); } } public function test1() { $nick = $this->get_nick('2139549746248392952'); $value = $nick; $desc = '该买家于' . date('Y-m-d H-i-s') . '系统导入黑名单黑名单,关联订单号之一:2139549746248392952'; if($value != 'error'){ $upStatus = $this->upBlack(1, $value, $desc); } } #获取买家id public function get_nick($merchant_order_id,$mid) { $merchant = MerchantService::instance()->get($mid); $Seesionkey = $merchant['refresh_token'];#淘宝此token为直充系统授权token $request = []; $request['agentId'] = $merchant['agentId']; $request['agentkey'] = $merchant['agentkey']; $request['tid'] = $merchant_order_id; $request['access_token'] = $Seesionkey; $response = Coretb::taobaosdk('getByTrade',$request); $json = json_encode($response); $array = json_decode($json,true); if(is_array($array)){ if(isset($array['open_uid']) && $array['open_uid']){ return $array['open_uid']; } } Log::write('openapi', 'taobao_getnick', $json);#写入到日志里 return 'error'; } public function finishafter() { $day = input('day'); /* if (!$day) { $day = date('Y-m-d', strtotime('-1 day')); } */ $page = 1; while($this->finishOne_after($day, $page)) { $page++; } } public function finishOne_after($day, $page) { $orderService = AfterSalesOrderService::instance(); $data = $orderService->getFinishData($day, $page); if ($data) { foreach ($data as $k => $v) { # 先插入一条历史数据 $id = $v['id']; unset($v['id']); $state = Db::name('merchant_order_history_aftersales')->insert($v); if ($state) { $orderService->del($id); } } return true; } else { return false; } } public function finishkami() { $day = input('day'); /* if (!$day) { $day = date('Y-m-d', strtotime('-1 day')); } */ $page = 1; while($this->finishOne_kami($day, $page)) { $page++; } } public function finishOne_kami($day, $page) { $orderService = Kami91OrderService::instance(); $data = $orderService->getFinishData($day, $page); if ($data) { foreach ($data as $k => $v) { # 先插入一条历史数据 $id = $v['id']; unset($v['id']); $state = Db::name('merchant_order_history_kami91')->insert($v); if ($state) { $orderService->del($id); } } return true; } else { return false; } } public function checkkami() { $order = $this->getOrderInfo(input('order_id'),'',''); $order_id = $order['order_id'].'_R'; // var_dump($order);die; $channelService = ChannelService::instance(); $check = $channelService->call('replaceCard_query', $order['cid'], $order_id); var_dump($check); } public function cancel(){ $order_id = input('order_id'); $data = OrderService::instance()->get($order_id); if(isset($data['num']) && $data['num']>0) { $data['order_id'] = $data['order_id'].'_'.$data['num']; } $channelService = ChannelService::instance(); if($data['cid']) $channelList = $channelService->db()->where(['id'=>$data['cid'],'status'=>1,'cancel_status'=>1])->find(); if(!$channelList){ var_dump('渠道不支持');die; } $result = $channelService->call('cancel', $data['cid'], $data); var_dump($result);die; } public function cancel_list(){ $mid = input('mid'); $timeout_cancel = input('timeout'); $timeout_cancel = intval($timeout_cancel); $cid = input('cid'); $product_key = input('product_key'); $cash = input('cash'); $num = input('num'); // if($num){ // $num // } $where = [['status','=',4],['mid','=',$mid],['cid','=',$cid],['cash','=',$cash],['product_key','=',$product_key],['expire_time','<=',date('Y-m-d H:i:s',time()+$timeout_cancel)],['num','=',$num]]; // list($count, $total) = [0, OrderService->db()->where($where)->order('id asc')->count()]; // $order_id = input('order_id'); $data = OrderService::instance()->db()->where($where)->order('id asc')->select()->toArray(); $channelService = ChannelService::instance(); foreach ($data as $k => $vo) { if(isset($vo['num']) && $vo['num']>0) { $vo['order_id'] = $vo['order_id'].'_'.$vo['num']; } $result = $channelService->call('cancel', $vo['cid'], $vo); var_dump($result); } } public function arrayToJson() { $input = input(); throw new HttpResponseException(json($input)); } public function test_test(){ $where['mid'] = 1; // $where['product_key'] = $product_key; $data = MerchantProductService::instance()->db()->where($where)->order('sort desc')->orderRand()->select()->toArray(); var_dump($data); } public function renwu() { $input=input(); // $this->_queue('[ 淘宝直充 - 自动同步 ] 主动更新售后订单信息', "xQueue:TaobaoAfterSalesOrderInfo", 0, [], 0,60); // $this->_queue('[ 淘宝直充 - 自动同步 ] 自动同步关联售后订单并尝试锁卡', "xQueue:TaobaoAfterSalesOrdeRelated", 0, [], 0,60); // $this->_queue('[ 订单列表 ] 订单主动查单', "xQueue:OrderQuery", 0, [], 0,1800); // $this->_queue('[ 淘宝直充 - 自动同步 ] 主动更新售后订单信息', "xQueue:TaobaoAfterSalesOrderInfo", 0, [], 0,60); // $this->_queue('[ 淘宝直充 - 自动同步 ] 自动同步关联售后订单并尝试锁卡', "xQueue:TaobaoAfterSalesOrdeRelated", 0, [], 0,60); // $this->_queue('[ 快手商家-订单列表 ] 渠道超时订单拦截', "xQueue:KsOrderChanelTimeoutInt", 0, [], 0, 60); // $this->_queue('[ 淘宝直充 - 自动同步 ] 特定渠道库存或余额不足自动下架', "xQueue:TaobaoAutoUpOrDown", 0, [], 0, 180); // $this->_queue('[ 淘宝直充 - 自动同步 ] 主动更新订单状态', "xQueue:TaobaoAfterSalesOrderUpStatus", 0, [], 0, 300); // $this->_queue('[ 淘宝直充 - 自动同步 ] 失败订单二次通知', "xQueue:TaobaoFailOrderSecondNotify", 0, [], 0, 600); // $this->_queue('[ 淘宝直充 - 黑名单 ] 自动拉黑规则', "xQueue:TaobaoBlacklistRules", 0, [], 0, 3600); // $this->_queue('[ 卡密列表 - 自动同步 ] 标准商户默认更新', "xQueue:KamiOrderStatusStandardUp", 0, [], 0, 1); // $this->_queue('[ 淘宝订单 - 自动同步 ] 强行更新', "xQueue:KamiOrderStatusForceUpdate", 0, [], 0, 180); // $this->_queue('[ 订单列表 ] 卡密完成订单迁移', "xQueue:KamiOrderFinish", 0, [], 0, 72400); // $this->_queue('[ 订单列表 ] 完成订单迁移', "xQueue:OrderFinish", 0, [], 0, 28800); $this->_queue($input['title'], $input['command'], 0, [], 0, $input['loops']); } // public function getOrderInfo($order_id,$merchant_order_id,$mid) { $orderService = OrderService::instance(); $order = $orderService->get($order_id, $merchant_order_id, $mid); if (!$order) { $orderHistoryService = OrderHistoryService::instance(); $order = $orderHistoryService->get($order_id, $merchant_order_id, $mid); } return $order; } public function cgetkami(){ // var_dump('123');die; $request['username'] = input('username'); $request['password'] = input('password'); $request['sporder_id'] = input('sporder_id'); $request['version'] = '1.0'; $sign = md5('username='.$request['username'].'&sporder_id='.$request['sporder_id'].'||25f570cb9244088641124df31f12aaa4'); $request['sign'] = $sign; $url = 'http://pfapi.anh618.com/queryorder.aspx'; $response = http_get($url,$request); $array = (array) simplexml_load_string($response); // var_dump($array);die; // $array = (array) $array['info']; // var_dump($array);die; if (isset($array['Order']) && $array['Order']) { $array['Order'] = (array) $array['Order']; } if (isset($array['info']) && $array['info']) { $array['info'] = (array) $array['info']; } if (isset($array['Card']) && $array['Card']) { $array['Card'] = (array) $array['Card']; } if (!$array) { $msg = 'error'; } elseif (isset($array['info']['ret']) && $array['info']['ret'] == '0' && isset($array['Order']['orderid']) && $array['Order']['orderid']) { $array['kami'] = []; if(isset($array['Card'][0])){ foreach ($array['Card'] as $key=>$value){ $value = (array) $value; $up = array ( 'cardno' => $value['cardnum'], 'cardpwd' => $value['cardpass'], 'ex' => $value['expriedate'], // 'value' => $array['Order']['rtlprice'], ); DB::name('test_kami_zm')->insert($up); } var_dump($array['kami']);die; } } } public function tradeUpdate($vo,$request,$beizhu = 1) { $request['merchant_order_id'] = $vo['merchant_order_id']; if($beizhu == 1){ $request['beizhu'] = "卡密已使用,请操作拒绝退款,并上传退款凭证--Reapi系统自动化"; }elseif($beizhu == 2){ $request['beizhu'] = "卡密锁卡失败,请人工介入操作,核实拒绝退款,并上传拒绝退款凭证--Reapi系统自动化"; }elseif ($beizhu == 3){ $request['beizhu'] = "此订单不存在中控系统中,可能属于早期订单,请人工核实处理--Reapi系统自动化"; } $request['flag'] = "1"; $request['reset'] = "false"; // $request['access_token'] = $merchant['access_token']; $response = Coretb::taobaosdk('tradeUpdate', $request); $json = json_encode($response); $array = json_decode($json, true); if (isset($array['Trade']['tid']) && $array['Trade']['tid'] == $vo['merchant_order_id']) { return 'ok'; } else { return 'error'; } } public function test23() { #成功 $apiParams['coop_order_status'] = 'SUCCESS'; $merchant = MerchantService::instance()->get('PT_34608230'); $taobao=new \app\openapi\controller\Taobao($this->app); $request = $this->getOrder('', '2219313037572987070'); $requestParam = json_decode($request['param'],true); var_dump($request);die; $senddata = Coretb::doaction($merchant,$request,$requestParam,$apiParams); // $msg = $taobao ->notify('https://eco.taobao.com/router/rest','' ,$apiParams); var_dump($senddata); } public function refundsp($vo,$request) { $request['caozuo_name'] = '系统自动处理'; $request['refundId'] = $vo['refund_id']; $request['phase'] = $vo['refund_phase']; $RefundVersion = json_decode($vo['infodata'],true); $RefundVersion = $RefundVersion['refund_version']; $request['RefundVersion'] = $RefundVersion; $request['RefundMsg'] = '未使用,同意退款';#默认同意 $request['RefundStatus'] = 'true'; // $request['access_token'] = $merchant['access_token']; $response = Coretb::taobaosdk('refundSp', $request); $json = json_encode($response); $array = json_decode($json, true); var_dump($request); if(isset($array['is_success']) && $array['is_success'] == 'true'){ return 'true'; }elseif(isset($array['sub_msg']) && str_contains($array['sub_msg'], "退款版本号不一致,请重新获取最新的退款数据")){ $RefundVersion = $this->refundget($vo,$request); // var_dump($RefundVersion);die; if($RefundVersion != 'error'){ $request['RefundVersion'] = $RefundVersion; sleep(3); $response = Coretb::taobaosdk('refundSp', $request); $json = json_encode($response); $array = json_decode($json, true); if(isset($array['is_success']) && $array['is_success'] == 'true'){ return 'true'; }else{ Log::write('queue', 'taobao_sp', $array);#写入到日志里 return 'error'; } }else { Log::write('queue', 'taobao_sp', $array);#写入到日志里 return 'error'; } var_dump($array);die; }else{ Log::write('queue', 'taobao_sp', $array);#写入到日志里 return 'error'; } #判断响应是否成功 } public function refundtk($vo,$request,$num = 0) { $RefundVersion = $this->refundget($vo,$request); if($RefundVersion != 'error'){ $cash = $vo['refund_fee'] * 100; $request['refund_infos'] = $vo['refund_id'].'|'.$cash.'|'.$RefundVersion .'|'.$vo['refund_phase']; $response = Coretb::taobaosdk('refundAgree', $request); $json = json_encode($response); $array = json_decode($json, true); if(isset($array['sub_msg']) ){ if(str_contains($array['sub_msg'], "未审核状态")){ while ($num<1) { $num++; sleep(3); return $this->refundtk($vo,$request,$num); } } } if (isset($array['succ'])) { if(isset($array['message']) && $array['message']=='操作成功'){ return 'ok'; }else{ Log::write('queue', 'taobao_tk', $array);#写入到日志里 return 'error'; } } else { Log::write('queue', 'taobao_tk', $array);#写入到日志里 return 'error'; } }else { Log::write('queue', 'taobao_tk', $RefundVersion);#写入到日志里 return 'error'; } } public function refundget($vo,$request) { if(isset($request['sub_code'])){ unset($request['sub_code']); } $request['refundId'] = $vo['refund_id']; // $request['access_token'] = $merchant['access_token']; $response = Coretb::taobaosdk('refundInfo', $request); $json = json_encode($response); $array = json_decode($json, true); if (isset($array['refund'])) { $array = $array['refund']; $RefundVersion = $array['refund_version']; return $RefundVersion; } else { return 'error'; } } public function quchong() { // 'linshi_order' // $page = 1; // while ($this->finishOnes( $page)) { // $page++; // } $start = date('Y-m-d', strtotime('-8 day')); $day = date('Y-m-d', strtotime('-3 day')); $begin = $start . ' 00:00:00'; $after = $day . ' 23:59:59'; $time = [$begin, $after]; $OrderLastweekHistoryService = OrderLastweekHistoryService::instance(); $order_data = $OrderLastweekHistoryService->db()->whereBetween('create_at', $time)->order('id asc')->select()->toArray();; // $order_data = $OrderLastweekHistoryService->db()->limit(78,1000)->select()->toArray(); foreach ($order_data as $vo) { $order_datas = Db::name('linshi_order')->where('order_id', $vo['order_id'])->find(); if(!$order_datas){ $state = Db::name('linshi_order')->insert($vo); }else{ $m = $OrderLastweekHistoryService->db()->where('order_id', $vo['order_id'])->count(); if($m > 1){ $OrderLastweekHistoryService->db()->where('id', $vo['id'])->delete();//这个用like会不会太范了?不会,因为order是唯一只是怕空格影响 } } } } public function finishOnes($page){ $OrderLastweekHistoryService = OrderLastweekHistoryService::instance(); // $order_data = $OrderLastweekHistoryService->db()->limit(5000)->select()->toArray(); if ($page) { $limit = 10000; $page = $page - 1; $page = $page * $limit; $order_data = $OrderLastweekHistoryService->db()->limit(2,1000)->select()->toArray(); // $db->limit($page, $limit); } $order_data = $OrderLastweekHistoryService->db()->limit(2,1000)->select()->toArray(); foreach ($order_data as $vo) { $order_datas = Db::name('linshi_order')->where('order_id', $vo['order_id'])->find(); if(!$order_datas){ $state = Db::name('linshi_order')->insert($vo); }else{ $m = $OrderLastweekHistoryService->db()->where('order_id', $vo['order_id'])->count(); if($m > 1){ $OrderLastweekHistoryService->db()->whereLike('id', $vo['id'])->delete();//这个用like会不会太范了?不会,因为order是唯一只是怕空格影响 } } } } public function execute() { ini_set('memory_limit', '1024M'); $channelService = ChannelService::instance(); $channelList = $channelService->db()->where(['query_status'=>1,'status'=>1])->select()->toArray(); $channelList_num = count($channelList); $count_sum = 0; $total_sum=0; foreach($channelList as $channel) { $class = OrderService::instance(); $where['cid'] = $channel['id']; $where['status'] = 4; list($count, $total) = [0, $class->db()->where($where)->order('id asc')->count()]; $total_sum += $total; // $data = $class->db()->where($where)->limit(100)->select()->toArray(); $class->db()->where($where)->order('id asc')->chunk(100, function (Collection $data) use (&$count, $total,$channel,$channelService,&$count_sum) { $array = $data->toArray(); foreach ($array as $k => $vo) { if(isset($vo['num']) && $vo['num']>0) { $vo['order_id'] = $vo['order_id'].'_'.$vo['num']; } $result = $channelService->call('query', $vo['cid'], $vo); var_dump($result);die; if ($result['status'] != 4) { $count_sum++; $count++; $notifyClass = new Notify($this->app); $notifyClass->queue_query($vo['order_id'], $result); $this->setQueueProgress("查询 {$vo['order_id']} 新的状态进行主动更新", $count / $total * 100); } } }); } $this->setQueueSuccess("共处理 {$channelList_num} 个渠道,共有 {$total_sum} 个订单处理查询中, 完成{$count_sum} 个订单查询新状态更新!"); } public function finishOne($day, $page) { $orderHistoryService = OrderLastweekHistoryService::instance(); // $orderService = OrderHistoryService::instance(); $orderService = OrderLastHistoryService::instance(); $data = $this->getFinishData($day, $page, $orderService); //??// list($count, $total) = [0, $data->count()]; $data->chunk(1000, function (Collection $data) use (&$count, $total, $orderService, $orderHistoryService) { // var_dump($orderlist);die; foreach ($data->toArray() as $vo) { if ($vo) { # 先插入一条历史数据 $id = $vo['id']; unset($vo['id']); $state = $orderHistoryService->up($vo); if ($state) { $orderService->del($id); $count++; var_dump($count); } } } }); } public function getFinishData($day, $page, $orderService) { if (!$day) { $start = date('Y-m-d', strtotime('-7 day')); $day = date('Y-m-d', strtotime('-1 day')); } else { $start = $day; } $begin = $start . ' 00:00:00'; $after = $day . ' 23:59:59'; $time = [$begin, $after]; $db = $orderService->db()->whereRaw('status in(2,3) '); $db = $db->whereBetween('create_at', $time)->order('id asc'); if ($page) { $limit = 10000; $page = $page - 1; $page = $page * $limit; $db->limit($page, $limit); } return $db; } // public function getOrderInfo($order_id) // { // $orderService = OrderService::instance(); // // $order = $orderService->db()->where(['order_id' => $order_id])->find(); // if (!$order) { // $orderHistoryService = OrderHistoryService::instance(); // $order = $orderHistoryService->db()->where(['order_id' => $order_id])->find(); // } // // // return $order; // // } public function upBlack($type, $value, $desc = '') { $BlackCardService = BlackCardService::instance(); $where['type'] = $type; $where['value'] = $value; $info = $BlackCardService->db()->where($where)->find(); if($info){ return 'false'; }else{ $update['type'] = $type; $update['value'] = $value; $update['desc'] = $desc; $update['status'] = 1; $BlackCardService->db()->insert($update); return '1'; } } // #================================================================================== protected function redis() { if (!$this->redis) { $this->redis = RedisService::getInstance(); } } public function test_shuju(){ $orderhistory = OrderHistoryService::instance(); $where = ['cid' =>4]; $where1[] = [ 'response','like','%kami%' ]; $start = '2024-05-22'; $day = '2024-06-01'; $begin = $start . ' 00:00:00'; $after = $day . ' 23:59:59'; $time = [$begin, $after]; $order = $orderhistory->db()->where($where)->where($where1)->whereBetween('create_at', $time)->select()->toArray(); $LockCardService = LockCardService::instance(); foreach ($order as $vo) { $response= json_decode($vo['response'],true); $cardno = $response['kami']['cardno']; $cardpwd = $response['kami']['cardpwd']; $expire_time = $response['kami']['expired']; $suoka = $LockCardService->call('suoka', $vo['cid'],$cardno,$cardpwd,$vo['pid'],$vo['cash']); Log::write('card', "kaidianbao", $suoka.$cardno); // var_dump($suoka,$cardno); } } }