|
|
@@ -17,7 +17,7 @@ use crmeb\exceptions\AuthException;
|
|
17
|
17
|
use think\Exception;
|
|
18
|
18
|
use think\facade\Db;
|
|
19
|
19
|
use think\facade\Request;
|
|
20
|
|
-
|
|
|
20
|
+use think\facade\Log;
|
|
21
|
21
|
class Access
|
|
22
|
22
|
{
|
|
23
|
23
|
use HuiPay;
|
|
|
@@ -205,20 +205,20 @@ class Access
|
|
205
|
205
|
|
|
206
|
206
|
|
|
207
|
207
|
// Db::name('merchant_annual_cost_order') -> where('order_no',$requestId[0]) -> update(['rand'=>$requestId[1],'serialNumber'=>$res['serialNumber']]);
|
|
208
|
|
- $order_data=Db::name('activation_code_order') -> where('order_no',$requestId[0]) -> find();
|
|
209
|
|
- Db::name('channel_user')->where('uid',$order_data['uid'])->update(['status'=>1]);
|
|
210
|
|
- if($order_data['status']==1){
|
|
211
|
|
- return false;
|
|
212
|
|
- }
|
|
213
|
|
- $id=Db::name('activation_code')->insertGetId([
|
|
214
|
|
- 'uid'=>$order_data['uid'],
|
|
215
|
|
- 'code'=>$this->randomFromDev(20),
|
|
216
|
|
- 'ctime'=>time(),
|
|
217
|
|
- 'status'=>1,
|
|
218
|
|
- 'utime'=>time(),
|
|
219
|
|
- 'use_uid'=>0,
|
|
220
|
|
- 'type'=>1
|
|
221
|
|
- ]);
|
|
|
208
|
+ $order_data=Db::name('activation_code_order') -> where('order_no',$requestId[0]) -> find();
|
|
|
209
|
+ Db::name('channel_user')->where('uid',$order_data['uid'])->update(['status'=>1]);
|
|
|
210
|
+ if($order_data['status']==1){
|
|
|
211
|
+ return false;
|
|
|
212
|
+ }
|
|
|
213
|
+ $id=Db::name('activation_code')->insertGetId([
|
|
|
214
|
+ 'uid'=>$order_data['uid'],
|
|
|
215
|
+ 'code'=>$this->randomFromDev(20),
|
|
|
216
|
+ 'ctime'=>time(),
|
|
|
217
|
+ 'status'=>1,
|
|
|
218
|
+ 'utime'=>time(),
|
|
|
219
|
+ 'use_uid'=>0,
|
|
|
220
|
+ 'type'=>1
|
|
|
221
|
+ ]);
|
|
222
|
222
|
// $code_data=Db::name('activation_code')->where('status',0)->where('uid',0)->select();
|
|
223
|
223
|
// if(!$code_data->isEmpty()){
|
|
224
|
224
|
// $data=$code_data->toArray();
|
|
|
@@ -684,16 +684,16 @@ class Access
|
|
684
|
684
|
{
|
|
685
|
685
|
// $domain = $this->request->domain();
|
|
686
|
686
|
// if(strpos($domain, 'test.hebeiyhc.com') !== false){
|
|
687
|
|
- $requestId[0]=input('order_sn');
|
|
|
687
|
+ $requestId[0]=input('order_sn');
|
|
688
|
688
|
// $pay_type=5;
|
|
689
|
|
- Db::name('store_group_order') -> where('group_order_sn',$requestId[0]) -> update(['rand'=>mt_rand(1000,9999)]);
|
|
|
689
|
+ Db::name('store_group_order') -> where('group_order_sn',$requestId[0]) -> update(['rand'=>mt_rand(1000,9999)]);
|
|
690
|
690
|
|
|
691
|
|
- $orderSn = $requestId[0];
|
|
692
|
|
- $groupOrder = app()->make(StoreGroupOrderRepository::class)->getWhere(['group_order_sn' => $orderSn]);
|
|
693
|
|
- if (!$groupOrder || $groupOrder->paid == 1) return;
|
|
694
|
|
- app()->make(StoreOrderRepository::class)->paySuccess($groupOrder);
|
|
|
691
|
+ $orderSn = $requestId[0];
|
|
|
692
|
+ $groupOrder = app()->make(StoreGroupOrderRepository::class)->getWhere(['group_order_sn' => $orderSn]);
|
|
|
693
|
+ if (!$groupOrder || $groupOrder->paid == 1) return;
|
|
|
694
|
+ app()->make(StoreOrderRepository::class)->paySuccess($groupOrder);
|
|
695
|
695
|
// event('pay_success_order', ['order_sn' => $requestId[0],'pay_type'=>$pay_type]);
|
|
696
|
|
- dump('成功');
|
|
|
696
|
+ dump('成功');
|
|
697
|
697
|
// dump($this->randomFromDev(20));
|
|
698
|
698
|
// }
|
|
699
|
699
|
}
|
|
|
@@ -720,11 +720,117 @@ class Access
|
|
720
|
720
|
$result=rtrim($result,' ');
|
|
721
|
721
|
return $result;
|
|
722
|
722
|
}
|
|
|
723
|
+
|
|
723
|
724
|
//小程序支付
|
|
724
|
725
|
public function pay_wechat_mp(StoreGroupOrderRepository $groupOrderRepository){
|
|
725
|
726
|
try {
|
|
|
727
|
+ log::info("微信小程序回调");
|
|
|
728
|
+ Db::name('log')->insert(['data'=>'汇付订单支付pay_wechat_mp-66666666---发起支付']);
|
|
|
729
|
+ $oid = Request::param('oid','');
|
|
|
730
|
+ $code = Request::param('code','');
|
|
|
731
|
+ $type = Request::param('type','');
|
|
|
732
|
+ $pay_open_id = Request::param('pay_open_id','');
|
|
|
733
|
+ if($oid == '')
|
|
|
734
|
+ return app('json')->fail("请检查参数是否正确");
|
|
|
735
|
+ $groupOrder = $groupOrderRepository->detail_noUid((int)$oid);
|
|
|
736
|
+ if (!$groupOrder)
|
|
|
737
|
+ return app('json')->fail('订单不存在或已支付');
|
|
|
738
|
+
|
|
|
739
|
+ $cart = Db::name("store_order")->where(['group_order_id'=>$oid]) -> value("cart_id");//日志记录
|
|
|
740
|
+ if($cart){
|
|
|
741
|
+ Db::name("log")->insert(array('data'=>json_encode($cart)));//日志记录
|
|
|
742
|
+ $cart = explode(",",$cart);
|
|
|
743
|
+ $cart_id = $cart[0];
|
|
|
744
|
+ $product = Db::name("store_product")
|
|
|
745
|
+ ->alias('sp')
|
|
|
746
|
+ ->join('store_cart sc', 'sp.product_id = sc.product_id')
|
|
|
747
|
+ ->where(["sc.cart_id"=>$cart_id])
|
|
|
748
|
+ ->value('sp.store_name');
|
|
|
749
|
+ }
|
|
|
750
|
+ $res = $this -> pay_huifu($type,$code,$groupOrder,$product ?? "储蓄保",env('APP_URL')."/api/hf_notify/pay",'delay');
|
|
|
751
|
+ Db::name('log')->insert(['data'=>'汇付订单支付--- 返回参数'.json_encode($res)]);
|
|
|
752
|
+ if (isset($res['id'])) {
|
|
|
753
|
+ Db::name('store_group_order')->where('group_order_id', $oid)->update(['hf_pay_id' => $res['id'],'pay_wx'=>systemConfig('pay_wx')]);
|
|
|
754
|
+ if($pay_open_id)
|
|
|
755
|
+ Db::name('store_order')->where('group_order_id', $oid)->update(['pay_open_id' => $pay_open_id]);
|
|
|
756
|
+ return app('json')->success($res);
|
|
|
757
|
+ }
|
|
|
758
|
+ return app('json')->fail($res);
|
|
|
759
|
+//////////////////////////////////////////////首信易/////////////////////////////////////////////////////////
|
|
|
760
|
+
|
|
|
761
|
+ if($type == 'wx'){
|
|
|
762
|
+ if(!$code || $code == '' || $code =='undefined')
|
|
|
763
|
+ return app('json')->fail("授权失败,code为空");
|
|
|
764
|
+ $url = "https://api.weixin.qq.com/sns/jscode2session?appid=".env('WECHAT_MP.APPID')."&secret=".env('WECHAT_MP.SECRET')."&js_code=".$code."&grant_type=authorization_code";
|
|
|
765
|
+ $get = curlGet($url);
|
|
|
766
|
+ if(!isset($get['openid']) || empty($get['openid'])){
|
|
|
767
|
+ return app('json')->fail('授权失败');
|
|
|
768
|
+ }
|
|
|
769
|
+ $openid = $get['openid'];
|
|
|
770
|
+// $openid = 'ow5su5GbH-RhPFfJv0JUPrMfvPfE';
|
|
|
771
|
+ $datas['openId'] = $openid;
|
|
|
772
|
+ $datas['paymentModeCode'] = "MINIAPPS-WEIXIN_PAY-P2P";
|
|
|
773
|
+ }else{
|
|
|
774
|
+ $datas['paymentModeCode'] = "ALIPAY-OFFICIAL";
|
|
|
775
|
+ }
|
|
|
776
|
+
|
|
|
777
|
+
|
|
|
778
|
+ $datas['requestId'] = $groupOrder['group_order_sn']."_".rand(1000,9999);//订单号
|
|
|
779
|
+ $datas['orderAmount'] = strval($groupOrder['pay_price'] * 100);//金额。单位分
|
|
|
780
|
+ $datas['callbackUrl'] = 'https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=Mzg4NzQ4NDgzNQ==&scene=124&uin=&key=&devicetype=Windows+10+x64&version=6302019c&lang=zh_CN&a8scene=7&fontgear=2';//同步地址微信公众号
|
|
|
781
|
+
|
|
|
782
|
+ $cart = Db::name("store_order")->where(['group_order_id'=>$oid]) -> value("cart_id");//日志记录
|
|
|
783
|
+ Db::name("log")->insert(array('data'=>json_encode($cart)));//日志记录
|
|
|
784
|
+ $cart = explode(",",$cart);
|
|
|
785
|
+ $cart_id = $cart[0];
|
|
|
786
|
+ $product = Db::name("store_product")
|
|
|
787
|
+ ->alias('sp')
|
|
|
788
|
+ ->join('store_cart sc', 'sp.product_id = sc.product_id')
|
|
|
789
|
+ ->where(["sc.cart_id"=>$cart_id])
|
|
|
790
|
+ ->value('sp.store_name');
|
|
|
791
|
+
|
|
|
792
|
+ Db::name("log")->insert(array('data'=>Db::name("store_product")->getLastSql()));//日志记录
|
|
|
793
|
+
|
|
|
794
|
+ $productDetails = array(
|
|
|
795
|
+ 'name' => $product ?? "储蓄保",//商品名称。需传递真实产品名称。
|
|
|
796
|
+ 'quantity' => 1,//商品数量
|
|
|
797
|
+ 'amount' => strval($groupOrder['pay_price'] * 100),//商品单价
|
|
|
798
|
+ );
|
|
|
799
|
+ $datas['productDetails'] = [$productDetails];//商品信息
|
|
|
800
|
+
|
|
|
801
|
+ $datas['clientIp'] = $this -> getRealIP();//客户端外网IP
|
|
|
802
|
+ $datas['notifyUrl']='/api/notify/pay_5upay';
|
|
|
803
|
+ $res = ShouxinyiApiRequest::onlinePay($datas);
|
|
|
804
|
+ $return = array(
|
|
|
805
|
+ 'redirectUrl' => $res['redirectUrl'] ?? '',//重定向地址
|
|
|
806
|
+ 'status' => $res['status'],
|
|
|
807
|
+ 'scanCode' => $res['scanCode'] ?? '',//Base64二维码
|
|
|
808
|
+ 'appParams' => $res['appParams'] ?? '',//App调用码
|
|
|
809
|
+ 'jsString' => $res['jsString'] ?? '',//微信小程序及公众号支付调用串
|
|
|
810
|
+ 'wechatId' => $res['wechatId'] ?? '',//微信原始ID串
|
|
|
811
|
+ 'tradeNo' => $res['tradeNo'] ?? '',//支付宝生活号调用id
|
|
|
812
|
+ 'token' => $res['token'] ?? '', //微包支付调用token
|
|
|
813
|
+ );
|
|
|
814
|
+ Db::name("log")->insert(array('data'=>'支付回调---'.json_encode($return)));//日志记录
|
|
|
815
|
+
|
|
|
816
|
+ return app('json')->success($return);
|
|
|
817
|
+
|
|
|
818
|
+ }catch (Exception $exception){
|
|
|
819
|
+ log::info("支付异常======");
|
|
|
820
|
+ log::info($exception);
|
|
|
821
|
+ Db::name("log")->insert(array('data'=>$exception->getFile().':'.$exception->getLine().'【'.$exception->getMessage().'】'));//日志记录
|
|
|
822
|
+ return app('json')->fail("异常");
|
|
|
823
|
+ }
|
|
|
824
|
+
|
|
|
825
|
+ }
|
|
|
826
|
+
|
|
|
827
|
+
|
|
|
828
|
+ //小程序支付
|
|
|
829
|
+
|
|
|
830
|
+ public function pay_wechat_mp_copy(StoreGroupOrderRepository $groupOrderRepository){
|
|
|
831
|
+ try {
|
|
726
|
832
|
|
|
727
|
|
- Db::name('log')->insert(['data'=>'汇付订单支付pay_wechat_mp---发起支付']);
|
|
|
833
|
+ Db::name('log')->insert(['data'=>'汇付订单支付pay_wechat_mp6666666---发起支付']);
|
|
728
|
834
|
$oid = Request::param('oid','');
|
|
729
|
835
|
$code = Request::param('code','');
|
|
730
|
836
|
$type = Request::param('type','');
|
|
|
@@ -1069,7 +1175,7 @@ class Access
|
|
1069
|
1175
|
if($payType == 'wx'){
|
|
1070
|
1176
|
Db::name('log')->insert(['data'=>'code---'.$code]);
|
|
1071
|
1177
|
if(!$code || $code == '' || $code =='undefined')
|
|
1072
|
|
- return app('json')->fail("授权失败,code为空");
|
|
|
1178
|
+ return app('json')->fail("授权失败,code为空");
|
|
1073
|
1179
|
$url = "https://api.weixin.qq.com/sns/jscode2session?appid=".env('WECHAT_MP.APPID')."&secret=".env('WECHAT_MP.SECRET')."&js_code=".$code."&grant_type=authorization_code";
|
|
1074
|
1180
|
$get = curlGet($url);
|
|
1075
|
1181
|
Db::name('log')->insert(['data'=>'open_id---'.json_encode($get)]);
|
|
|
@@ -1155,7 +1261,7 @@ class Access
|
|
1155
|
1261
|
if($payType == 'wx'){
|
|
1156
|
1262
|
Db::name('log')->insert(['data'=>'code---'.$code]);
|
|
1157
|
1263
|
if(!$code || $code == '' || $code =='undefined')
|
|
1158
|
|
- return app('json')->fail("授权失败,code为空");
|
|
|
1264
|
+ return app('json')->fail("授权失败,code为空");
|
|
1159
|
1265
|
$url = "https://api.weixin.qq.com/sns/jscode2session?appid=".env('WECHAT_MP.APPID')."&secret=".env('WECHAT_MP.SECRET')."&js_code=".$code."&grant_type=authorization_code";
|
|
1160
|
1266
|
$get = curlGet($url);
|
|
1161
|
1267
|
Db::name('log')->insert(['data'=>'open_id---'.json_encode($get)]);
|
|
|
@@ -1874,34 +1980,34 @@ class Access
|
|
1874
|
1980
|
Db::name('user_bill')->insert($billData);
|
|
1875
|
1981
|
Db::name('user')->where('uid',$uid)->inc('brokerage_price',$price)->update();
|
|
1876
|
1982
|
if($is_implement){
|
|
1877
|
|
- if($channelrecommend['recommend_uid']!=0){
|
|
1878
|
|
- $price=bcmul($order_data['pay_price'],'0.05',3);
|
|
1879
|
|
- $price=round($price,2);
|
|
1880
|
|
- $mark = '邀请渠道商获得' . $price . '佣金';
|
|
1881
|
|
- $title='佣金';
|
|
1882
|
|
- $tuijian=Db::name('channel_user')->where('uid',Db::name('channel_user')->where('uid',$channelrecommend['recommend_uid'])->value('recommend_uid'))->find();
|
|
1883
|
|
- if($tuijian){
|
|
1884
|
|
- $billData=[
|
|
1885
|
|
- 'uid'=>$tuijian['uid'],
|
|
1886
|
|
- 'link_id'=>$order_data['id'],
|
|
1887
|
|
- 'pm'=>1,
|
|
1888
|
|
- 'title'=>$title,
|
|
1889
|
|
- 'category'=>'now_money',
|
|
1890
|
|
- 'type'=>'commission',
|
|
1891
|
|
- 'number'=>$price,
|
|
1892
|
|
- 'balance'=>0,
|
|
1893
|
|
- 'mark'=>$mark,
|
|
1894
|
|
- 'create_time'=>date("Y-m-d H:i:s",time()),
|
|
1895
|
|
- 'status'=>1,
|
|
1896
|
|
- 'order_sn'=>$order_sn,
|
|
1897
|
|
- 'type_shop'=>0,
|
|
1898
|
|
- 'commission_type'=>9,
|
|
1899
|
|
- 'order_type'=>1
|
|
1900
|
|
- ];
|
|
1901
|
|
- Db::name('user_bill')->insert($billData);
|
|
1902
|
|
- Db::name('user')->where('uid',$tuijian['uid'])->inc('brokerage_price',$price)->update();
|
|
1903
|
|
- }
|
|
1904
|
|
- }
|
|
|
1983
|
+ if($channelrecommend['recommend_uid']!=0){
|
|
|
1984
|
+ $price=bcmul($order_data['pay_price'],'0.05',3);
|
|
|
1985
|
+ $price=round($price,2);
|
|
|
1986
|
+ $mark = '邀请渠道商获得' . $price . '佣金';
|
|
|
1987
|
+ $title='佣金';
|
|
|
1988
|
+ $tuijian=Db::name('channel_user')->where('uid',Db::name('channel_user')->where('uid',$channelrecommend['recommend_uid'])->value('recommend_uid'))->find();
|
|
|
1989
|
+ if($tuijian){
|
|
|
1990
|
+ $billData=[
|
|
|
1991
|
+ 'uid'=>$tuijian['uid'],
|
|
|
1992
|
+ 'link_id'=>$order_data['id'],
|
|
|
1993
|
+ 'pm'=>1,
|
|
|
1994
|
+ 'title'=>$title,
|
|
|
1995
|
+ 'category'=>'now_money',
|
|
|
1996
|
+ 'type'=>'commission',
|
|
|
1997
|
+ 'number'=>$price,
|
|
|
1998
|
+ 'balance'=>0,
|
|
|
1999
|
+ 'mark'=>$mark,
|
|
|
2000
|
+ 'create_time'=>date("Y-m-d H:i:s",time()),
|
|
|
2001
|
+ 'status'=>1,
|
|
|
2002
|
+ 'order_sn'=>$order_sn,
|
|
|
2003
|
+ 'type_shop'=>0,
|
|
|
2004
|
+ 'commission_type'=>9,
|
|
|
2005
|
+ 'order_type'=>1
|
|
|
2006
|
+ ];
|
|
|
2007
|
+ Db::name('user_bill')->insert($billData);
|
|
|
2008
|
+ Db::name('user')->where('uid',$tuijian['uid'])->inc('brokerage_price',$price)->update();
|
|
|
2009
|
+ }
|
|
|
2010
|
+ }
|
|
1905
|
2011
|
}
|
|
1906
|
2012
|
|
|
1907
|
2013
|
|