diff --git a/app/api/controller/Abutment.php b/app/api/controller/Abutment.php index a81fc62f..a0efefaf 100755 --- a/app/api/controller/Abutment.php +++ b/app/api/controller/Abutment.php @@ -305,7 +305,7 @@ class Abutment extends Api 'biz_content' => array( "mer_id"=>"120448160200", "deal_flag"=>'0', - "out_trade_no"=>"dlh1730187196979", + "out_trade_no"=>"dlh1730358966979", // "order_id"=>"120448160200000562407290003182", "mer_prtcl_no"=>"1204481602000201", "icbc_appid"=>$this->APP_ID @@ -451,10 +451,10 @@ class Abutment extends Api 'method' => 'POST', 'isNeedEncrypt'=>false, 'biz_content' => array( - "icbcOrderSubNo"=>"11", - "icbcOrderNo"=>"120448160200000572410290005130", - // "outAgreeNo"=>"1204481601980201" - "outAgreeNo"=>"1204481602020201" + "icbcOrderSubNo"=>"7", + "icbcOrderNo"=>"120448160200000552410310006232", + "outAgreeNo"=>"1204481602030201" + // "outAgreeNo"=>"dlh17304530429791" // "outAgreeNo"=>"1204481602020201" ), 'extraParams'=>[] diff --git a/app/api/controller/GongHang.php b/app/api/controller/GongHang.php new file mode 100644 index 00000000..fc2b1417 --- /dev/null +++ b/app/api/controller/GongHang.php @@ -0,0 +1,263 @@ +apiClient = new \DefaultIcbcClient( + $this->APP_ID, + $this->PRI_KEY, + $this->signType, + 'UTF-8', + '', + $this->APIGW_PUBLIC_KEY, + '', + '', + '', + '' + ); + } + // 工行支付 + public function pay($user_id="",$money="",$decive_info="111",$type=0){ + + $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; + $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"; + $userAccount = ""; + if($type != 0){ + $userAccount = $this->userAccount($user_id,$out,$money,$merchant,$user_msg); + } + $basic = $this->basic($user_id,$out,$money,$our,$user_msg); + $general1 = $this->general1($user_id,$out,$money,$other,$user_msg); + $general2 = $this->general2($user_id,$out,$money,$user_billions,$user_msg); + $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"=>$this->shop_appid, + "icbc_appid"=>$this->APP_ID, + "open_id"=>$user_msg['openid'], + "expire_time"=>"300", + "is_suborder"=>"1", + "order_num"=>"3", + "order_submit_act_input"=>array( + $basic, + $general1, + $general2, + $userAccount + ) + ), + 'extraParams'=>[] + ]; + $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'] = $this->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); + $res = $this->apiClient->execute($request,$msg_id,""); + $result = json_decode($res,true); + // print_r("
");
+        // 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 userAccount($user_id,$out,$money,$merchant,$user_msg){
+        $out1 = "dlh".time().$user_id."1";
+        $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);
+        return  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)
+        );
+    }
+
+    // 基本户
+    public function basic($user_id,$out,$money,$our,$user_msg){
+        $out2 = "dlh".time().$user_id."2";
+        $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);
+        return 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)
+        );
+    }
+
+    // 一般户1
+    public function general1($user_id,$out,$money,$other,$user_msg){
+        $out3 = "dlh".time().$user_id."3";
+        $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);
+        return    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)
+        );
+    }
+    // 一般户2
+    public function general2($user_id,$out,$money,$user_billions,$user_msg){
+        $out4 = "dlh".time().$user_id."4";
+        $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);
+        return   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)
+        );
+    }
+}
\ No newline at end of file
diff --git a/app/api/logic/GongHangLogic.php b/app/api/logic/GongHangLogic.php
new file mode 100644
index 00000000..116202da
--- /dev/null
+++ b/app/api/logic/GongHangLogic.php
@@ -0,0 +1,279 @@
+apiClient = new \DefaultIcbcClient(
+            $this->APP_ID,
+            $this->PRI_KEY,
+            $this->signType,
+            'UTF-8',
+            '',
+            $this->APIGW_PUBLIC_KEY,
+            '',
+            '',
+            '',
+            ''
+        );
+    }
+    // 基本户信息
+    public static function basicMsg(){
+
+    }
+
+    public function pay($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("
");
+        // 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("
");
+        // var_dump($request);die;
+        $res = $this->apiClient->execute($request,$msg_id,"");
+        $result = json_decode($res,true);
+        //   print_r("
");
+        // 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("
");
+        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("
");
+        var_dump($result);
+        $r = json_decode($result['order_submit_act_output'],true);
+
+        var_dump($r);
+    }
+}
\ No newline at end of file
diff --git a/app/index/controller/Index.php b/app/index/controller/Index.php
index 1509b5ae..198f91b1 100755
--- a/app/index/controller/Index.php
+++ b/app/index/controller/Index.php
@@ -64,16 +64,16 @@ class Index extends IndexBase
         $re = $_REQUEST;
         $data['content'] = $re;
         $data['dtime'] = date("Y-m-d H:i:s");
-        //   Db::name("local_return")->save($data);
-        // if (gettype($re) == "string") {
-        //     $data['content'] = $re;
-        //     $data['dtime'] = date("Y-m-d H:i:s");
-        //   Db::name("local_return")->save($data);
-        // } else {
-        //     $data['content'] = var_export($re, true);
-        //     $data['dtime'] = date("Y-m-d H:i:s");
-        //     Db::name("local_return")->save($data);
-        // }
+           Db::name("local_return")->save($data);
+         if (gettype($re) == "string") {
+             $data['content'] = $re;
+             $data['dtime'] = date("Y-m-d H:i:s");
+           Db::name("local_return")->save($data);
+         } else {
+             $data['content'] = var_export($re, true);
+             $data['dtime'] = date("Y-m-d H:i:s");
+             Db::name("local_return")->save($data);
+         }
     }
     public function billions(){