Przeglądaj źródła

增加创建订单脚本

jace 6 lat temu
rodzic
commit
25c0b606e7

+ 123 - 0
normandcrm/service/console/controllers/CreatDespositJobController.php

@@ -0,0 +1,123 @@
+<?php
+namespace console\controllers;
+
+use backend\models\Deposit;
+use backend\models\SyncDesposit;
+use common\helpers\MtKit;
+use backend\models\Member;
+use Yii;
+
+class CreatDespositJobController extends BaseJobController
+{
+    public function actionRun()
+    {
+        $this->outLog("Creat start " . date('Y-m-d H:i:s'));
+        $payUrl = "https://api.eaglepay.pro/recharge_address";
+        $key = "A7Zs2LCSP1AepR5pnmOWxJNElkqkWrzw";
+        $result = Deposit::find()->max('recharge_id');   //获取入金表的最大recharge_id
+        $data['merchId'] = '2';                          //商户号码
+        $data['lastId'] = empty($result)?0:$result;      //商户号码
+        $data['limit'] = '20';                           //商户号码
+        $data['time'] = time();                          //交易时间
+        $data['sign'] = CreatDespositJobController::makeSign($data,$key);     //加密sign
+        $result_data = CreatDespositJobController::sendPost($payUrl, $data);  //对数据判断,然后请求
+        $result_array = json_decode($result_data,true);
+        if($result_array['code']=='0'){
+           
+            $post_data = $result_array['data'];
+            foreach ($post_data as $key => $value) {
+                $Deposit = new Deposit();
+                $syncDespositModel = new SyncDesposit();
+                $result = Deposit::find()->where(['recharge_id' => $value['id']])->asArray()->limit(1)->one();      //查看数据库是否有数据
+                $member_info = Member::find()->where(['logins' => $value['userId']])->asArray()->limit(1)->one();   // 根据用户的mt4用户的member的信息
+                if($result){
+                    if($value['status']==1 && $result['type']==0){
+
+                        $res = Deposit::updateAll(['type' => 1], "recharge_id = $value[id]");
+                        if($res){
+                            $syncDespositModel->login = $value['userId'];
+                            $syncDespositModel->amount = $value['amount'];
+                            $syncDespositModel->comment = 'Deposit';
+                            $syncDespositModel->memo = $result['order_sn'];
+                            $syncDespositModel->type = 2;
+                            $syncDespositModel->in_time = time();
+                            $syncDespositModel->save();
+                        }
+                    } 
+                }else{
+                    
+                    $Deposit->type = $value['status']; 
+                    $Deposit->order_sn = date('YmdHis').rand(1000,9999);
+                    $Deposit->member_id =  $member_info['id'];
+                    $Deposit->amount = $value['amount'];
+                    $Deposit->rmb = $value['amount']*6.84;
+                    $Deposit->rate = 6.84;
+                    $Deposit->in_time = time();
+                    $Deposit->pay_name = "eagle";
+                    $Deposit->login = $value['userId'];
+                    $Deposit->mt4_status = '0';
+                    $Deposit->login = $value['userId'];
+                    $Deposit->recharge_id = $value['id'];
+                    $Deposit->save();
+                    if($value['status']==1){
+                        $syncDespositModel->login = $value['userId'];
+                        $syncDespositModel->amount = $value['amount'];
+                        $syncDespositModel->comment = 'Deposit';
+                        $syncDespositModel->memo = $Deposit->order_sn;
+                        $syncDespositModel->type = 2;
+                        $syncDespositModel->in_time = time();
+                        $syncDespositModel->save(); 
+                    }
+                }
+            }
+        }
+        $this->outLog("Creat end, " . date('Y-m-d H:i:s'));
+    }
+    public function outLog($msg)
+    {
+        \Yii::warning($msg, get_called_class());
+        $this->stdout($msg . "\n");
+    }
+
+
+    // 加密方法
+    public static function makeSign($data, $secretKey)
+    {
+        $str = '';
+        ksort($data);
+        foreach ($data as $key => $value) {
+            if ($key == 'sign') {
+                continue;
+            }
+            $value = strval($value);
+            if ($value === '') {
+                continue;
+            }
+            $str .= "{$key}={$value}&";
+        }
+        $str = rtrim($str, '&') . "&key={$secretKey}";
+        file_put_contents('190903.txt',$str);
+        file_put_contents('190903md5.txt',strtoupper(md5($str)));
+        return strtoupper(md5($str));
+    }
+
+
+    // post请求方法
+    public static function sendPost($url, $post_data) {
+
+        $postdata = http_build_query($post_data);
+        $options = array(
+            'http' => array(
+                'method' => 'POST',
+                'header' => 'Content-type:application/x-www-form-urlencoded',
+                'content' => $postdata,
+                'timeout' => 15 * 60 // 超时时间(单位:s)
+            )
+        );
+        $context = stream_context_create($options);
+        $result = file_get_contents($url, false, $context);
+
+        return $result;
+    }
+
+}