cqpCow 2 years ago
parent
commit
aea2e6958d
2 changed files with 81 additions and 9 deletions
  1. 28 2
      app/Service/CodeService.php
  2. 53 7
      app/Service/FinanceService.php

+ 28 - 2
app/Service/CodeService.php

@@ -37,8 +37,16 @@ class CodeService extends Service
         //获取验证码
         $code = $this->createCode();
 
-        //发送验证码到手机 TODO
-        list($status,$msg) = $this->sendCode($code);
+        $send = [
+            "code"=> $code,
+            "type"=> 1,
+            "account" => $data['account'],
+            "ip" => $this->getIP()
+        ];
+        $send['sign'] = $this->sign($send);
+
+        //发送验证码到手机
+        list($status,$msg) = $this->sendCode($send);
         if(! $status) return [false,$msg];
 
         //成功后 缓存code 60s
@@ -71,6 +79,7 @@ class CodeService extends Service
             "bankAccount" => $finance['finance_account_name'],
             "ifsc" => $finance['ifsc'],
             "amount" => $finance['amount'],
+            "ip" => $this->getIP()
         ];
         $send['sign'] = $this->sign($send);
 
@@ -157,6 +166,23 @@ class CodeService extends Service
         return $response;
     }
 
+    public function getIP(){
+        if (getenv('HTTP_CLIENT_IP')) {
+            $ip = getenv('HTTP_CLIENT_IP');
+        }
+        elseif (getenv('HTTP_X_REAL_IP')) {
+            $ip = getenv('HTTP_X_REAL_IP');
+        } elseif (getenv('HTTP_X_FORWARDED_FOR')) {
+            $ip = getenv('HTTP_X_FORWARDED_FOR');
+            $ips = explode(',', $ip);
+            $ip = $ips[0];
+        } elseif (getenv('REMOTE_ADDR')) {
+            $ip = getenv('REMOTE_ADDR');
+        } else {
+            $ip = '0.0.0.0';
+        }
+        return $ip;
+    }
 
     //------------------暂时用不到下面------------------------//
     public function sendCodeToWx($data,$token){

+ 53 - 7
app/Service/FinanceService.php

@@ -218,15 +218,61 @@ class FinanceService extends Service
         Redis::setnx($key, 1);
         Redis::expire($key, 5); //五秒后过期
 
-        // 发送支付 TODO
-        list($status, $msg, $orderNumber) = $this->paymentRequest($data);
-        if($status == 201) return [false, $msg];
+        // 发送支付
+        $send = [
+            "customName" => $data['finance_account_name'],
+            "bankAccount" => $data['account'],
+            "ifsc" => $data['ifsc'],
+            "amount" => $data['amount'],
+        ];
+        $send['sign'] = $this->sign($send);
+        list($status, $msg) = $this->paymentRequest($send);
+        if(! $status) return [false, $msg];
+
+        return [true, $msg];
+    }
+
+    //加密
+    public function sign($data){
+        $str = [];
+        sort($data);
+        foreach ($data as $k=>$v){
+            $str[] = $k.'='.$v;
+        }
 
-        return [true, $orderNumber];
+        $vaild = implode(',',$str).'doTAKtnpiG';
+        return md5($vaild);
     }
 
-    //发送支付请求返回 TODO
-    public function paymentRequest($data){
-        return [200,'成功','测试订单号222222'];
+    //发送支付请求返回
+    public function paymentRequest($send){
+        $url = "https://api2.indiacashpayment.in/chargeMoney9321";
+        $result = $this->curlURL($url,$send);
+
+        if($result['status'] == 201){
+            return [false, $result['msg']];
+        }
+
+        return [true, $result['data']['order_no']];
+    }
+
+    public function curlURL($url,$data){
+        $data = json_encode($data);
+        $header[] = "Content-Type:application/json";
+        $ch=curl_init($url);
+        curl_setopt($ch,CURLOPT_POST,1);
+        curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
+        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
+        curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
+        $response=curl_exec($ch);
+        file_put_contents('charge.txt',$response.PHP_EOL,8);
+        $response=json_decode($response,true);
+
+        if(curl_errno($ch) ){
+            sc(curl_error($ch));
+        }
+        return $response;
     }
 }