diff --git a/app/api/controller/PayController.php b/app/api/controller/PayController.php index 77c4698..aebcd32 100644 --- a/app/api/controller/PayController.php +++ b/app/api/controller/PayController.php @@ -5,8 +5,7 @@ namespace app\api\controller; use app\common\enum\PayEnum; use app\common\logic\PayNotifyLogic; use app\common\model\retail\Cashierclass; -use Webman\Config; -use Yansongda\Pay\Pay; +use app\common\service\pay\PayService; /** * 支付 @@ -20,19 +19,11 @@ class PayController extends BaseApiController /** * @notes 小程序支付回调 - * @return \Psr\Http\Message\ResponseInterface - * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException - * @throws \EasyWeChat\Kernel\Exceptions\RuntimeException - * @throws \ReflectionException - * @throws \Throwable - * @author 段誉 - * @date 2023/2/28 14:21 */ public function notifyMnp() { - $config = Config::get('payment'); - Pay::config($config); - $result = Pay::wechat()->callback(Request()->post()); + $app=new PayService(1); + $result = $app->wechat->callback(Request()->post()); if($result && $result->event_type=='TRANSACTION.SUCCESS'){ $ciphertext=$result->resource['ciphertext']; if ($ciphertext['trade_state'] === 'SUCCESS') { @@ -46,12 +37,10 @@ class PayController extends BaseApiController return true; } PayNotifyLogic::handle('cashierclass', $ciphertext['out_trade_no'], $ciphertext); - Pay::wechat()->success(); + $app->wechat->success(); break; } } } - - // return (new WeChatPayService(UserTerminalEnum::WECHAT_MMP))->notify(); } } diff --git a/app/common/enum/PayEnum.php b/app/common/enum/PayEnum.php index bba624a..e7b126b 100644 --- a/app/common/enum/PayEnum.php +++ b/app/common/enum/PayEnum.php @@ -13,7 +13,7 @@ class PayEnum /** * 支付类型 - * @BALANCE 余额 + * @BALANCE_PAY 余额 * @WECHAT_PAY 微信支付 * @ALIPAY 支付宝 * @WECHAT_PAY_APP 微信APP diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php index 858c099..adac982 100644 --- a/app/common/logic/PayNotifyLogic.php +++ b/app/common/logic/PayNotifyLogic.php @@ -64,10 +64,6 @@ class PayNotifyLogic extends BaseLogic } } - // 更新充值订单状态 - // $order->transaction_id = $extra['transaction_id']; - // $order->paid = PayEnum::ISPAID; - // $order->save(); } diff --git a/app/common/logic/PaymentLogic.php b/app/common/logic/PaymentLogic.php index 8cab066..df954e9 100644 --- a/app/common/logic/PaymentLogic.php +++ b/app/common/logic/PaymentLogic.php @@ -1,28 +1,12 @@ PayEnum::BALANCE_PAY]; } switch ($payWay) { case PayEnum::WECHAT_PAY: - // $payService = (new WeChatPayService($terminal, $order['uid'] ?? null)); - // $order['pay_sn'] = $paySn; - // $order['redirect_url'] = $redirectUrl; - // $result = $payService->pay($from, $order); $auth = UserAuth::where(['user_id' => $order['uid'], 'terminal' => $terminal])->findOrEmpty(); $order = [ 'out_trade_no' => $paySn, @@ -75,38 +50,13 @@ class PaymentLogic extends BaseLogic ], 'attach' => $from ]; - - $config = Config::get('payment'); - Pay::config($config); - $result = Pay::wechat()->mini($order)->toArray(); + $wechat=new PayService(1); + $result = $wechat->wechat->mini($order)->toArray(); break; default: self::$error = '订单异常'; $result = false; } - - // if (false === $result && !self::hasError()) { - // d($payService->getError()); - // self::setError($payService->getError()); - // } return $result; } - - - - - /** - * @notes 设置订单号 支付回调时截取前面的单号 18个 - * @param $orderSn - * @param $terminal - * @return string - * @author 段誉 - * @date 2023/3/1 16:31 - * @remark 回调时使用了不同的回调地址,导致跨客户端支付时(例如小程序,公众号)可能出现201,商户订单号重复错误 - */ - public static function formatOrderSn($orderSn, $terminal) - { - $suffix = mb_substr(time(), -4); - return $orderSn . $terminal . $suffix; - } } diff --git a/app/common/service/pay/PayService.php b/app/common/service/pay/PayService.php new file mode 100644 index 0000000..7db3788 --- /dev/null +++ b/app/common/service/pay/PayService.php @@ -0,0 +1,66 @@ +terminal = $terminal; + $config = Config::get('payment'); + Pay::config($config); + if ($userId !== null) { + $this->auth = UserAuth::where(['user_id' => $userId, 'terminal' => $terminal])->findOrEmpty(); + } + $this->wechat=Pay::wechat(); + } + + + + + +} \ No newline at end of file