diff --git a/app/api/controller/Gt.php b/app/api/controller/Gt.php index 6d1677a5..84b8ddb8 100644 --- a/app/api/controller/Gt.php +++ b/app/api/controller/Gt.php @@ -3,6 +3,7 @@ namespace app\api\controller; use app\common\basics\Api; +use app\common\server\JsonServer; use think\facade\Db; class Gt extends Api { @@ -29,20 +30,17 @@ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlu5coHWBbtrz8DyX0VbPWiJZlAsofwZ99pZq $result = $this->curl_post($url,$b); var_dump($result); } - public function wxPay($money='1'){ - $user_id = $this->user_id; + public function wxPay($money='1',$local_goods_id=0,$lstore_id=0){ +// $user_id = $this->user_id; $user_id = 979; $user = Db::name("user_auth")->where("user_id",$user_id)->find(); -// $publicKey = "-----BEGIN PUBLIC KEY----- -//MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwRUsPpbQPhBWrxFhG00k9VBgnHc7dCZyTQYIZ0efDEZOPHtDfbldfBDlfZglvfUsVuxea4NffzkbCm9pakoQilSy7hioiF8sxhUYxpwFIbx15KaQsjpeCtu5yOr3bKb5qZNzf+QtL70EDPfdVdZ5mBlO7CMa01W7CtqkxBlc4iSfVeavFK7rzOJpTAoamHdcdjtffYlNAsg2q3I1SDIUkiasVCo+BtNgzLY+7y1mSt9SbXO5nCMBT9DQVqsccBHu4SYS6kExISfLDjfeAldgtNtMuuyESiyp53EEk/Xe8JzrrjnHloHB63H47TxElsApAEmz0dabJyMBqT8Ow/m5OQIDAQAB -//-----END PUBLIC KEY-----"; - + $out = "dlh".time().$user_id; $user_id = 979; $data = [ 'agetId'=>"FWH000025501", 'custId'=>"60000008228471", - 'orderNo'=>"dlh".time().$user_id, - 'txamt'=>$money, + 'orderNo'=>$out, + 'txamt'=>$money*100, 'openid'=>$user['openid'], 'payWay'=>"1", 'ip'=>$_SERVER['REMOTE_ADDR'], @@ -51,17 +49,68 @@ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlu5coHWBbtrz8DyX0VbPWiJZlAsofwZ99pZq 'wxAppid'=>'wx586d77b9edb0636d', 'traType'=>'8' ]; + $da['orderNo'] = $out; + $da['txamt'] = $money*100; + $da['user_id'] = $user_id; + $da['local_goods_id'] = $local_goods_id; + $da['lstore_id'] = $lstore_id; + $da['dtime'] = date("Y-m-d H:i:s"); + Db::name("gt_pay")->save($da); + $d =$this->ASCII($data); + $data['sign'] = $this->sign($d,$this->publicKey); +// print_r("
");
+//        var_dump($data);
+        $b = json_encode($data,true);
+//        var_dump($b);
+        $url = "https://yyfsvxm.postar.cn/yyfsevr/order/pay";
+        $result = $this->curl_post($url,$b);
+        $r['nonceStr'] = $result['data']['jsapiNoncestr'];
+        $r['package'] = $result['data']['jsapiPackage'];
+        $r['signType'] = $result['data']['jsapiSignType'];
+        $r['timeStamp'] = $result['data']['jsapiTimestamp'];
+        $r['paySign'] = $result['data']['jsapiPaySign'];
+        return JsonServer::success('开始支付',$r);
+//        var_dump($result);
+    }
+    public function account(){
+
+            $ΘACC_DETAIL=array(
+                array(
+                "ACC_CUST_ID"=>"60000008228471",
+                "ACC_DATE"=>"0.2"
+            ),
+            array(
+                "ACC_CUST_ID"=>"60000008435142",
+                "ACC_DATE"=>"0.3"
+            ),
+            array(
+                "ACC_CUST_ID"=>"60000008435087",
+                "ACC_DATE"=>"0.5"
+            ));
+        $ΘACC_DETAIL = json_encode($ΘACC_DETAIL,true);
+        $d['ACC_DETAIL'] = $ΘACC_DETAIL;
+        $ACC_DETAIL = json_encode($d,true);
+        $data = [
+            'agetId'=>"FWH000025501",
+            'custId'=>"60000008228471",
+            'orderNo'=>"dlh1732801945979",
+            'areaId'=>"20241128184516",
+            'accModel'=>"1",
+            'accWay'=>"1",
+            'orderAccDetail'=>$ACC_DETAIL,
+            'timeStamp'=>time(),
+            'version'=>"1.0.0"
+        ];
         $d =$this->ASCII($data);
         $data['sign'] = $this->sign($d,$this->publicKey);
         print_r("
");
         var_dump($data);
         $b = json_encode($data,true);
         var_dump($b);
-        $url = "https://yyfsvxm.postar.cn/yyfsevr/order/pay";
+        $url = "https://yyfsvxm.postar.cn/yyfsevr/order/account";
         $result = $this->curl_post($url,$b);
         var_dump($result);
     }
-
     // 查询mcc
     public function checkMcc(){
         $data = [
diff --git a/app/api/controller/Gtpay.php b/app/api/controller/Gtpay.php
new file mode 100644
index 00000000..05e7f9d4
--- /dev/null
+++ b/app/api/controller/Gtpay.php
@@ -0,0 +1,395 @@
+user_id;var_dump($user_id);
+//        $user_id = 979;
+        $user = Db::name("user_auth")->where("user_id",$user_id)->find();
+        $out = "dlh".time().$user_id;
+        $data = [
+            'agetId'=>$this->agetId,
+            'custId'=>$this->custId,
+            'orderNo'=>$out,
+            'txamt'=>$money*100,
+            'openid'=>$user['openid'],
+            'payWay'=>"1",
+            'ip'=>$_SERVER['REMOTE_ADDR'],
+            'timeStamp'=>time(),
+            'version'=>"1.0.0",
+            'wxAppid'=>$this->wxAppid,
+            'traType'=>'8'
+        ];
+        $da['orderNo'] = $out;
+        $da['txamt'] = $money*100;
+        $da['user_id'] = $user_id;
+        $da['local_goods_id'] = $local_goods_id;
+        $da['lstore_id'] = $lid;
+        $da['dtime'] = date("Y-m-d H:i:s");
+        $r['id'] = Db::name("gt_pay")->insertGetId($da);
+        $d =$this->ASCII($data);
+        $data['sign'] = $this->sign($d,$this->publicKey);
+        // print_r("
");
+//        var_dump($data);
+        $b = json_encode($data,true);
+//        var_dump($b);
+        $url = "https://yyfsvxm.postar.cn/yyfsevr/order/pay";
+        $result = $this->curl_post($url,$b);
+        $r['nonceStr'] = $result['data']['jsapiNoncestr'];
+        $r['package'] = $result['data']['jsapiPackage'];
+        $r['signType'] = $result['data']['jsapiSignType'];
+        $r['timeStamp'] = $result['data']['jsapiTimestamp'];
+        $r['paySign'] = $result['data']['jsapiPaySign'];
+        return JsonServer::success('开始支付',$r);
+    }
+    public function checkOrder($post){
+        $user_id = $this->user_id;
+        $gtpay_msg = Db::name("gt_pay")->where("id",$post['id'])->find();
+        $data = [
+            'agetId'=>$this->agetId,
+            'custId'=>$this->custId,
+            'orderNo'=>$gtpay_msg['orderNo'],
+            'orderTime'=>date("Ymd",strtotime($gtpay_msg['dtime'])),
+            'timeStamp'=>time(),
+            'version'=>"1.0.0"
+        ];
+        // print_r("
");
+        // var_dump($data);
+        $d =$this->ASCII($data);
+        $data['sign'] = $this->sign($d,$this->publicKey);
+//        print_r("
");
+//        var_dump($data);
+        $b = json_encode($data,true);
+//        var_dump($b);
+        $url = "https://yyfsvxm.postar.cn/yyfsevr/order/orderQuery";
+        $result = $this->curl_post($url,$b);
+//        var_dump($result);
+        return $this->account($result,$post,$user_id,$gtpay_msg);
+    }
+    public function account($result,$post,$user_id,$gtpay_msg){
+        // var_dump($result);
+        $sidy = 0.7;
+        $sidy1 = 0.03;
+        $sidy2 = 0.05;
+        $sidy3 = 0.22;
+        if(isset($post['spec_item_id'])){
+            $sku_num_msg = Db::name("local_store_goods_item")
+                ->where("id",$post['spec_item_id'])
+                ->find();
+            if($sku_num_msg!=null){
+                $data['goods_id'] = $sku_num_msg['goods_id'];
+                $local_goods_msg = Db::name("local_store_goods")
+                    ->where("id",$sku_num_msg['goods_id'])
+                    ->find();
+                if($local_goods_msg['subsidy_id'] == 0){
+                    $sidy = 0.7;
+                    $sidy1 = 0.03;
+                    $sidy2 = 0.05;
+                    $sidy3 = 0.22;
+                }else{
+                    $subsidy = Db::name("goods_subsidy")
+                        ->where("id",$local_goods_msg['subsidy_id'])
+                        ->find();
+                    $sidy = round($subsidy['profit']/100,2);
+                    $sidy3 = round((100-$subsidy['profit']-8)/100,2);
+                }
+            }
+            $data['sku_id'] = $post['spec_item_id'];
+        }
+        if(isset($post['lsg_order_id'])){
+            $data['lsg_order_id'] = $post['lsg_order_id'];
+            if(isset($post['post_station_time'])){
+                $year = date("Y");
+                $post_station_time = $year.'-'.$post['post_station_time'];
+                $post_station_time = strtotime($post_station_time);
+                LocalGoodsOrder::where('lsg_order_id',$post['lsg_order_id'])->update(
+                    [
+                        'post_station_id'=>$post['post_station_id'],
+                        'post_station_time'=>$post_station_time
+                    ]
+                );
+            }
+        }
+        if(isset($post['goods_num'])){
+            $data['goods_num'] = $post['goods_num'];
+        }
+        $data['order_sn'] = $gtpay_msg['orderNo'];
+        $data['order_source'] = 1;
+        $data['pay_way'] = 1;
+        $data['pay_status'] = 0;
+        $data['local_id'] = $post['lid'];
+        $data['user_id'] = $user_id;
+        $data['order_amount'] = round($gtpay_msg['txamt']/100,2);
+        $data['pay_type'] = 1;
+        $data['gt_orderno'] = $result['data']['orderNo'];
+        $data['create_time'] = date("Y-m-d H:i:s");
+        $r = Db::name("local_pay")->save($data);
+
+        $company = Db::name("local_store")->where("lstore_id",$post['lid'])->where("is_delete",0)->find();
+        $dt['lstore_id'] = $post['lid'];
+        $dt['payment_type'] = $company['bankType'];
+        $dt['total_amount'] = round($gtpay_msg['txamt']/100,2);
+        $dt['account_name'] = $company['shopName'];
+        $dt['bank_name'] = $company['bankName'];
+        $dt['bank_card'] = $company['bankCard'];
+        $dt['large_number'] = $company['largeNumber'];
+        $dt['separate_account'] = round($gtpay_msg['txamt']/100*$sidy,2);
+        $dt2['separate_account'] = round($gtpay_msg['txamt']/100*$sidy3,2);
+        $dt3['separate_account'] = round($gtpay_msg['txamt']/100*$sidy1,2);
+        if($post['lid'] == 138){
+            $dt['separate_account'] = round($gtpay_msg['txamt']/100*0.72,2);
+            $dt2['separate_account'] = round($gtpay_msg['txamt']/100*0.20,2);
+        }
+        if($post['lid'] == 140){
+            $dt['separate_account'] = round($gtpay_msg['txamt']/100*0.76,2);
+            $dt2['separate_account'] = round($gtpay_msg['txamt']/100*0.22,2);
+            $dt3['separate_account'] = 0;
+        }
+        $dt['create_time'] = date("Y-m-d H:i:s");
+        $dt['user_id'] = $user_id;
+        $dt['order_no'] = $gtpay_msg['orderNo'];
+        $dt['pay_shop_type'] = 1;
+        if( isset($post['remark'])){
+            $dt['remark'] = $post['remark'];
+        }
+        $r = Db::name("local_store_order")->save($dt);
+        // 基本户 5%
+        $dt1['lstore_id'] = $post['lid'];
+        $dt1['payment_type'] = 1;
+        $dt1['account_name'] = "东龙汇";
+        $dt1['bank_name'] = "中国工商银行";
+        $dt1['bank_card'] = "1204068809100138961";
+        $dt1['large_number'] = "102335006882";
+        $dt1['separate_account'] = round($gtpay_msg['txamt']/100*$sidy2,2);
+        $dt1['create_time'] = date("Y-m-d H:i:s");
+        $dt1['user_id'] = $user_id;
+        $dt1['local_our_company'] = 1;
+        $dt1['order_no'] = $gtpay_msg['orderNo'];
+        $r1 = Db::name("local_store_order")->save($dt1);
+// 22% 一般户
+        $dt2['lstore_id'] = $post['lid'];
+        $dt2['payment_type'] = 1;
+        $dt2['account_name'] = "东龙汇";
+        $dt2['bank_name'] = "中国工商银行";
+        $dt2['bank_card'] = "1204064019200152507";
+        $dt2['large_number'] = "102335006405";
+
+        $dt2['create_time'] = date("Y-m-d H:i:s");
+        $dt2['user_id'] = $user_id;
+        $dt2['local_our_company'] = 2;
+        $dt2['order_no'] = $gtpay_msg['orderNo'];
+        $r2 = Db::name("local_store_order")->save($dt2);
+        // 10% 一般户
+        $dt3['lstore_id'] = $post['lid'];
+        $dt3['payment_type'] = 1;
+        $dt3['account_name'] = "东龙汇";
+        $dt3['bank_name'] = "中国工商银行";
+        $dt3['bank_card'] = "1204064419000115357";
+        // $dt3['bank_card'] = "1204068809100138961";
+        // $dt3['large_number'] = "102335006882";
+        $dt3['large_number'] = "102335006448";
+//        $dt3['separate_account'] = round($post['money']*0.06,2);
+        $dt3['create_time'] = date("Y-m-d H:i:s");
+        $dt3['user_id'] = $user_id;
+        $dt3['local_our_company'] = 3;
+        $dt3['order_no'] = $gtpay_msg['orderNo'];
+        $r3 = Db::name("local_store_order")->save($dt3);
+
+        $arr=array("ACC_DETAIL"=>array(
+            array(
+                "ACC_CUST_ID"=>$company['acc_cust_id'],
+                "ACC_DATE"=>round($gtpay_msg['txamt']/100*$sidy,2)
+            ),
+            // 基本户
+            array(
+                "ACC_CUST_ID"=>"60000008228471",
+                "ACC_DATE"=>round($gtpay_msg['txamt']/100*$sidy2,2)
+            ),
+            // 一般户2507
+            array(
+                "ACC_CUST_ID"=>"60000008435142",
+                "ACC_DATE"=>round($gtpay_msg['txamt']/100*$sidy3,2)
+            ),
+            //一般户5357
+            array(
+                "ACC_CUST_ID"=>"60000008435087",
+                "ACC_DATE"=>round($gtpay_msg['txamt']/100*$sidy2,2)
+            )));
+        $arr = json_encode($arr,true);
+        $data = [
+            'agetId'=>$this->agetId,
+            'custId'=>$this->custId,
+            'orderNo'=>$result['data']['orderNo'],
+            'areaId'=>$this->areaId,
+            'accModel'=>"1",
+            'accWay'=>"1",
+            'orderAccDetail'=>$arr,
+            'timeStamp'=>time(),
+            'version'=>"1.0.0",
+            'remark'=>'订单分账',
+            'accTxamt'=>$gtpay_msg['txamt']
+        ];
+        $d =$this->ASCII($data);
+        $data['sign'] = $this->sign($d,$this->publicKey);
+//        print_r("
");
+//        var_dump($data);
+        $b = json_encode($data,true);
+//        var_dump($b);
+        $url = "https://yyfsvxm.postar.cn/yyfsevr/order/account";
+        $res = $this->curl_post($url,$b);
+        if($res['code'] == "000000"){
+            $dat['state'] = 1;
+            $dat['taskCreateDate'] = $res['data']['taskCreateDate'];
+            $dat['taskId'] = $res['data']['taskId'];
+            Db::name("gt_pay")->where("id",$gtpay_msg['id'])->update(['state'=>1]);
+            Db::name("local_store_order")->where("order_no",$gtpay_msg['orderNo'])->update(['state'=>1]);
+            Db::name("local_pay")->where("order_sn",$gtpay_msg['orderNo'])->update(['pay_status'=>1]);
+            if(isset($post['lsg_order_id'])){
+                LocalGoodsOrder::where('lsg_order_id',$post['lsg_order_id'])->update(
+                    [
+                        'state'=>1
+                    ]
+                );
+            }
+            $user = Db::name("user")->where("id",$user_id)->find();
+            $distribution = Db::name("distribution")->where("user_id",$user_id)->find();
+            // 参与消费返补
+            $billions = new Billions();
+            $order['order_amount'] = round($gtpay_msg['txamt']/100,2);
+            $order['id'] = $gtpay_msg['id'];
+            $order['order_sn'] = $gtpay_msg['orderNo'];
+            $order['type'] = 4;
+            $type = "local_pay";
+            $billions_result = $billions->billions($order,$user['id'],$type);
+            return JsonServer::success('分账成功');
+        }
+    }
+    public function accountResult(){
+        $data = [
+            'agetId'=>"FWH000025501",
+            'custId'=>"60000008228471",
+            'orderNo'=>"20241129TT2lg6ln",
+            'areaId'=>"20241128184516",
+            'taskCreateDate'=>"20241129",
+            'taskId'=>"1099295",
+            'timeStamp'=>time(),
+            'version'=>"1.0.0"
+        ];
+        $d =$this->ASCII($data);
+        $data['sign'] = $this->sign($d,$this->publicKey);
+        print_r("
");
+        var_dump($data);
+        $b = json_encode($data,true);
+        var_dump($b);
+        $url = "https://yyfsvxm.postar.cn/yyfsevr/order/accountResult";
+        $result = $this->curl_post($url,$b);
+        var_dump($result);
+    }
+
+    // 异步支付回调
+    public function payNotify(){
+
+    }
+    //异步提现回调
+    public function payWithdrawal(){
+
+    }
+    //异步进件
+    public function inComing(){
+
+    }
+    function ASCII($params=array()){
+        ksort($params);
+        reset($params);
+        $str = "";
+        $t = array();
+        foreach($params as $key=>$value){
+            $t[] = $key."=".$value;
+        }
+
+        $str = implode("&",$t);
+//        $str = http_build_query($params,'','&');
+        return $str;
+    }
+    public function sign($param,$key_pem)
+    {
+        $sha256 = hash("sha256", $param);
+        $privateKey = openssl_pkey_get_public($key_pem); //检测是否公钥
+        openssl_public_encrypt($sha256, $sign, $privateKey); //公钥加密
+        $sign = base64_encode($sign);
+        return $sign;
+    }
+    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/json'));
+        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;
+    }
+    private function curl_get($url) {
+        //初使化curl
+        $curl = curl_init();
+        //请求的url,由形参传入
+        curl_setopt($curl, CURLOPT_URL, $url);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测
+        curl_setopt($curl, CURLOPT_HTTPHEADER, array(
+            'Expect:'
+        )); // 解决数据包大不能提交
+        //将得到的数据返回
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
+        //不处理头信息
+        curl_setopt($curl, CURLOPT_HEADER, 0);
+        //连接超过10秒超时
+        curl_setopt($curl, CURLOPT_TIMEOUT, 30);
+        curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
+        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
+        curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
+        curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
+//        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
+        //执行curl
+        $output = curl_exec($curl);
+        if (curl_errno($curl)) {
+            echo 'Errno' . curl_error($curl);
+        }
+        //关闭资源
+        curl_close($curl);
+        //返回内容
+        $tmpInfo=json_decode($output,true);
+        return $tmpInfo;
+    }
+}
\ No newline at end of file
diff --git a/app/api/controller/Huifu.php b/app/api/controller/Huifu.php
index 5bb523e3..3f8501e3 100644
--- a/app/api/controller/Huifu.php
+++ b/app/api/controller/Huifu.php
@@ -5,10 +5,11 @@ require_once  ROOT_PATH . "/../vendor/hf/BsPayDemo/loader.php";
 require_once  ROOT_PATH . "/../vendor/hf/BsPaySdk/init.php";
 use app\common\basics\Api;
 use BsPaySdk\core\BsPay;
-
+use BsPaySdk\config\MerConfig;
 
 class Huifu extends Api
 {
+
     public function payTest()
     {
         $config = new BsPay();
@@ -60,37 +61,62 @@ class Huifu extends Api
         }
     }
 
-    public function test(){
+    public function test($user_id=1){
+        $out = "dlh".time().$user_id;
         $data = [
-            'agetId'=>"FWH000025501",
-            'custId'=>"60000008228471",
-            'orderNo'=>"dlh".time().$user_id,
-            'txamt'=>$money,
-            'openid'=>$user['openid'],
-            'payWay'=>"1",
-            'ip'=>$_SERVER['REMOTE_ADDR'],
-            'timeStamp'=>time(),
-            'version'=>"1.0.0",
-            'wxAppid'=>'wx586d77b9edb0636d',
-            'traType'=>'8'
+            "sys_id"=>"6666000156739560",
+            "product_id"=>"PAYUN",
+            "data"=>array(
+                "req_date"=>date("Y-m-d"),
+                "req_seq_id"=>$out,
+                "huifu_id"=>"6666000156739560",
+                "goods_desc"=>"测试商品",
+                "trade_type"=>"T_MINIAPP",
+                "trans_amt"=>"1.00"
+            ),
+            "wx_data"=>array(
+                "sub_appid"=>"wx586d77b9edb0636d",
+                "sub_openid"=>"ouOMm41xnIKqoZ66ygwJa-qJQpgw"
+
+            )
         ];
         $d =$this->ASCII($data);
-        $data['sign'] = $this->sign($d,$this->publicKey);
+        $merConfig = new MerConfig();
+        $data['sign'] = $this->sign($data,$merConfig->rsa_huifu_public_key);
         print_r("
");
         var_dump($data);
         $b = json_encode($data,true);
         var_dump($b);
-        $url = "https://yyfsvxm.postar.cn/yyfsevr/order/pay";
-        $result = $this->curl_post($url,$b);
+        $bspay = new BsPay();
+        $result = $bspay->post("v2.trade.payment.jspay", $paramsInfo, '', 'default');
+        if (!$result || $result->isError()) {  //失败处理
+            var_dump($result->getErrorInfo());
+        } else {    //成功处理
+            var_dump($result);
+        }
         var_dump($result);
     }
+    public function sign($param,$key_pem)
+    {
+        $sha256 = hash("sha256", $param);
+        $privateKey = openssl_pkey_get_public($key_pem); //检测是否公钥
+        openssl_public_encrypt($sha256, $sign, $privateKey); //公钥加密
+        $sign = base64_encode($sign);
+        return $sign;
+    }
     function ASCII($params=array()){
-        ksort($params);
-        reset($params);
+//        ksort($params);
+//        reset($params);
         $str = "";
         $t = array();
         foreach($params as $key=>$value){
-            $t[] = $key."=".$value;
+            if(is_array($value)){
+                $b = json_encode($value,true);
+                $t[] = $key."=".$b;
+            }else{
+                $t[] = $key."=".$value;
+            }
+
         }
 
         $str = implode("&",$t);
diff --git a/app/common/logic/Earnings.php b/app/common/logic/Earnings.php
index c5f95d1b..ac7ed876 100644
--- a/app/common/logic/Earnings.php
+++ b/app/common/logic/Earnings.php
@@ -28,7 +28,28 @@ class Earnings
         ]);
         return $result;
     }
-
+// 推广店铺
+    public function userEarningsShop($money,$first_leader,$type_msg){
+        User::where('id', $first_leader)
+            ->inc('earnings', $money)->update();
+        $earnings_buy = AccountLog::where('user_id', $first_leader)
+            ->order("create_time desc")
+            ->limit(1)
+            ->value('left_amount');
+        $sn = createSn('account_log', 'log_sn', '', 4);
+        $result = AccountLog::create([
+            'log_sn' => $sn,
+            'user_id' => $first_leader,
+            'source_type' => $type_msg, //todo 改为充值类型
+            'source_id' => 0, //todo 改为充值订单主键
+            'source_sn' => 0, // todo 改为充值订单编号
+            'change_amount' => $money,
+            'left_amount' => $earnings_buy + $money,
+            'change_type' => 1,
+            'remark' => '分销推广店铺佣金增加'
+        ]);
+        return $result;
+    }
     //推广会员无极公司佣金
     public function userElectrodelessEarnings($money,$divide_role_user_id,$type_msg){
         User::where('id', $divide_role_user_id)