PayNotifyServices.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\services\pay;
  12. use app\services\order\OtherOrderServices;
  13. use app\services\order\StoreOrderSuccessServices;
  14. use app\services\user\UserRechargeServices;
  15. /**
  16. * 支付成功回调 所有的异步通知回调都会走下面的三个方法,不在取分微信/支付宝支付回调
  17. * Class PayNotifyServices
  18. * @package app\services\pay
  19. */
  20. class PayNotifyServices
  21. {
  22. /**
  23. * 订单支付成功之后
  24. * @param string|null $order_id 订单id
  25. * @return bool
  26. */
  27. public function wechatProduct(string $order_id = null, string $trade_no = null, string $payType = PayServices::WEIXIN_PAY)
  28. {
  29. try {
  30. /** @var StoreOrderSuccessServices $services */
  31. $services = app()->make(StoreOrderSuccessServices::class);
  32. $orderInfo = $services->getOne(['order_id' => $order_id]);
  33. if (!$orderInfo) return true;
  34. if ($orderInfo->paid) return true;
  35. return $services->paySuccess($orderInfo->toArray(), $payType, ['trade_no' => $trade_no]);
  36. } catch (\Exception $e) {
  37. return false;
  38. }
  39. }
  40. /**
  41. * 充值成功后
  42. * @param string|null $order_id 订单id
  43. * @return bool
  44. */
  45. public function wechatUserRecharge(string $order_id = null, string $trade_no = null, string $payType = PayServices::WEIXIN_PAY)
  46. {
  47. try {
  48. /** @var UserRechargeServices $userRecharge */
  49. $userRecharge = app()->make(UserRechargeServices::class);
  50. if ($userRecharge->be(['order_id' => $order_id, 'paid' => 1])) return true;
  51. return $userRecharge->rechargeSuccess($order_id, ['trade_no' => $trade_no, 'pay_type' => $payType]);
  52. } catch (\Exception $e) {
  53. return false;
  54. }
  55. }
  56. /**
  57. * 购买会员
  58. * @param string|null $order_id
  59. * @return bool
  60. */
  61. public function wechatMember(string $order_id = null, string $trade_no = null, string $payType = PayServices::WEIXIN_PAY)
  62. {
  63. try {
  64. /** @var OtherOrderServices $services */
  65. $services = app()->make(OtherOrderServices::class);
  66. $orderInfo = $services->getOne(['order_id' => $order_id]);
  67. if (!$orderInfo) return true;
  68. if ($orderInfo->paid) return true;
  69. return $services->paySuccess($orderInfo->toArray(), $payType, ['trade_no' => $trade_no]);
  70. } catch (\Exception $e) {
  71. return false;
  72. }
  73. }
  74. }