diff --git a/app/common/models/PayType.php b/app/common/models/PayType.php index ee19925b..c2d8fe0b 100644 --- a/app/common/models/PayType.php +++ b/app/common/models/PayType.php @@ -118,6 +118,19 @@ class PayType extends BaseModel const HUIBEI_CODE= 120; // 慧呗支付 - 付款码 + + const T_JSAPI= 200; // 微信公众号 + const A_NATIVE= 201; // 支付宝正扫 + const T_MINIAPP= 202; // 微信小程序 + const A_JSAPI= 203; // 支付宝JS + const U_NATIVE= 204; // 银联正扫 + const U_JSAPI= 205; // 银联JS + const D_NATIVE= 206; //数字人民币正扫 + const T_H5= 207; // 微信直连H5支付 + const T_APP= 208; // 微信APP支付(只支持直连) + const T_NATIVE= 209; // 微信正扫(只支持直连) + + /** * 查询所有分类类型 * diff --git a/app/common/services/PayFactory.php b/app/common/services/PayFactory.php index 09c9a3bc..d515614a 100644 --- a/app/common/services/PayFactory.php +++ b/app/common/services/PayFactory.php @@ -462,12 +462,17 @@ class PayFactory const HUIBEI_CODE= 120; // 慧呗支付 - 付款码 - const HFTX_WECHAT= 200; // 汇付天下支付 - 微信 - - const HFTX_ALIPAY= 201; // 汇付天下支付 - 支付宝 - - + const T_JSAPI= 200; // 微信公众号 + const A_NATIVE= 201; // 支付宝正扫 + const T_MINIAPP= 202; // 微信小程序 + const A_JSAPI= 203; // 支付宝JS + const U_NATIVE= 204; // 银联正扫 + const U_JSAPI= 205; // 银联JS + const D_NATIVE= 206; //数字人民币正扫 + const T_H5= 207; // 微信直连H5支付 + const T_APP= 208; // 微信APP支付(只支持直连) + const T_NATIVE= 209; // 微信正扫(只支持直连) @@ -1112,6 +1117,16 @@ class PayFactory } $className = new \Yunshop\HuiBeiPay\services\payment\HuibeiCodePay(); break; + case self::T_JSAPI: + case self::T_MINIAPP: + case self::A_JSAPI: + case self::A_NATIVE: + case self::U_NATIVE: + case self::U_JSAPI: + case self::D_NATIVE: + case self::T_H5: + case self::T_APP: + case self::T_NATIVE: case 'T_JSAPI': case 'T_MINIAPP': case 'A_JSAPI': diff --git a/app/frontend/modules/order/controllers/MergePayController.php b/app/frontend/modules/order/controllers/MergePayController.php index 89a20e82..c7af0bed 100644 --- a/app/frontend/modules/order/controllers/MergePayController.php +++ b/app/frontend/modules/order/controllers/MergePayController.php @@ -333,10 +333,13 @@ class MergePayController extends ApiController if (!is_null($trade) && isset($trade['redirect_url']) && !empty($trade['redirect_url'])) { $redirect = $trade['redirect_url'] . '&outtradeno=' . request()->input('order_pay_id'); } + + //跳转页面 $orders = Order::whereIn('id', $orderPay->order_ids)->get(); event($event = new AfterOrderPaidRedirectEvent($orders,$orderPay->id)); $data['redirect'] = $event->getData()['redirect']?:$redirect; + var_dump($data);die; return $this->successJson('成功', $data); } @@ -2104,6 +2107,29 @@ class MergePayController extends ApiController } + /*** + * 汇付支付 + * @return \Illuminate\Http\JsonResponse + */ + public function hfPay() + { + $code = request()->input('code'); + $pay_type_id = request()->input('pay_type_id'); + $order_pay_id = request()->input('order_pay_id'); + $orderPay = OrderPay::find($order_pay_id); + try{ + $data = $orderPay->getPayResult($pay_type_id); + }catch (\Exception $e){ + return $this->errorJson($e->getMessage()); + } +// $data=json_decode('{"result":1,"msg":"","data":{"bank_code":"SUCCESS","bank_message":"\u6210\u529f","hf_seq_id":"002900TOP1B231126112253P388ac139c9400000","huifu_id":"6666000143581181","party_order_id":"03222311264097357609631","pay_info":"{\"appId\":\"wx4af8f6640561083a\",\"timeStamp\":\"1700968973\",\"nonceStr\":\"fe0c3eb218fb4d208c4cba21bc2532c8\",\"package\":\"prepay_id=wx261122537937133992755630def6960000\",\"signType\":\"RSA\",\"paySign\":\"GuxETrBhemlOFmPAVz6dw7\/eJuqYmwKWLdfxgHztr6biqiG\/uUm5Mv9kP+1MqPM0T4egvnGMgSAq7EkQadKF9gXAFgf9F3AbkkIqO8o\/+hO7hRn5HOb5y1L6QxeU4Lc+frhhXsnJF\/PLQLAljSHG2qw\/bJGJs31okFdCkuLL7dIz5SLPqcGsOMxg\/4+54jls0vftNuua3iADT+7BQ34UIzO3W5H9sQadEzMhozzDXvIdSqSAL5C+ckuBVP57azmm0mkNzXdw1q\/yD9x2FZyVKSqcdLn\/b6R37S6BeD1jfQRctOrZ9cKoYArkS1IbsiG3y0FQENKamJnJD9faoStx5g==\"}","remark":"2","req_date":"20231126","req_seq_id":"PN2311261122881DC9","resp_code":"00000100","resp_desc":"\u4e0b\u5355\u6210\u529f","trade_type":"T_JSAPI","trans_amt":"498.00","trans_stat":"P","mode":1,"url":null},"validate_page":{"is_bind_mobile":0,"invite_page":0,"is_invite":0,"is_login":1,"invite_mobile":0,"bind_address":{"is_bind_address":1,"bind_address_type":0,"bind_address_page":[]},"need_video":0,"bind_mobile_page":[],"is_level_compel":0}}',true); +// $data['data']['mode']='200'; + return $this->successJson('下单成功!', $data['data']); + } + + + + public function unifyPayment(): \Illuminate\Http\JsonResponse { $pay_type_id = request()->input('pay_type_id'); diff --git a/plugins/hftx-pay/src/services/HfPay.php b/plugins/hftx-pay/src/services/HfPay.php index b34d688e..99824cea 100644 --- a/plugins/hftx-pay/src/services/HfPay.php +++ b/plugins/hftx-pay/src/services/HfPay.php @@ -1,14 +1,12 @@ 'T_JSAPI', + 201=>'A_NATIVE', + 202=>'T_MINIAPP', + 203=>'A_JSAPI', + 204=>'U_NATIVE', + 205=>'U_JSAPI', + 206=>'D_NATIVE', + 207=>'T_H5', + 208=>'T_APP', + 209=>'T_NATIVE', 'T_JSAPI'=> '微信公众号', 'T_MINIAPP'=> '微信小程序', 'A_JSAPI'=> '支付宝JS', @@ -35,7 +45,12 @@ class HfPay extends Pay */ public function __construct($type = '') { - $this->TradeType=$type; + if(is_numeric($type)){ + $this->codeId=$type; + $this->TradeType=$this->payTpye[$type]; + }else{ + $this->TradeType=$type; + } $this->paySet = \Setting::get('shop.pay'); $config = [ 'sys_id' => $this->paySet['sys_id'], @@ -79,14 +94,10 @@ class HfPay extends Pay $data=$result->getRspDatas()['data']; if($data['resp_code']!='00000100'){ $data['msg']=$data['resp_desc']; - $arr=$data; }else{ - $data['mode']=1; - $data['url']=$data['qr_code']; - $arr['data']=$data; - $arr['code']=1; + $data['mode']=$this->codeId; } - return $arr; + return $data; } } @@ -116,8 +127,9 @@ class HfPay extends Pay case 'T_JSAPI': case 'T_MINIAPP': case 'T_H5': + $openid = Member::getOpenIdForType(\YunShop::app()->getMemberId()); $data['wx_data']=[ - 'openid'=>'' + 'openid'=>$openid ]; break; case 'A_JSAPI':