Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

PayNotifyServices.php 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace app\services\pay;
  3. use app\services\order\OtherOrderServices;
  4. use app\services\order\StoreOrderSuccessServices;
  5. use app\services\user\UserRechargeServices;
  6. use think\facade\Log;
  7. /**
  8. * 支付成功回调
  9. * Class PayNotifyServices
  10. * @package app\services\pay
  11. */
  12. class PayNotifyServices
  13. {
  14. /**
  15. * 订单支付成功之后
  16. * @param string|null $order_id 订单id
  17. * @return bool
  18. */
  19. public function wechatProduct(string $order_id = null, string $trade_no = null)
  20. {
  21. try {
  22. /** @var StoreOrderSuccessServices $services */
  23. $services = app()->make(StoreOrderSuccessServices::class);
  24. $orderInfo = $services->getOne(['order_id' => $order_id]);
  25. if (!$orderInfo) return true;
  26. if ($orderInfo->paid) return true;
  27. return $services->paySuccess($orderInfo->toArray(), PayServices::WEIXIN_PAY, ['trade_no' => $trade_no]);
  28. } catch (\Exception $e) {
  29. return false;
  30. }
  31. }
  32. /**
  33. * 充值成功后
  34. * @param string|null $order_id 订单id
  35. * @return bool
  36. */
  37. public function wechatUserRecharge(string $order_id = null, string $trade_no = null)
  38. {
  39. try {
  40. Log::error('充值订单支付回调:' . $order_id);
  41. /** @var UserRechargeServices $userRecharge */
  42. $userRecharge = app()->make(UserRechargeServices::class);
  43. if ($userRecharge->be(['order_id' => $order_id, 'paid' => 1])) return true;
  44. return $userRecharge->rechargeSuccess($order_id);
  45. } catch (\Exception $e) {
  46. return false;
  47. }
  48. }
  49. /**
  50. * 购买会员
  51. * @param string|null $order_id
  52. * @return bool
  53. */
  54. public function wechatMember(string $order_id = null, string $trade_no = null)
  55. {
  56. try {
  57. /** @var OtherOrderServices $services */
  58. $services = app()->make(OtherOrderServices::class);
  59. $orderInfo = $services->getOne(['order_id' => $order_id]);
  60. if (!$orderInfo) return true;
  61. if ($orderInfo->paid) return true;
  62. return $services->paySuccess($orderInfo->toArray(), PayServices::WEIXIN_PAY);
  63. } catch (\Exception $e) {
  64. return false;
  65. }
  66. }
  67. /**
  68. * 支付宝支付异步回调处理事件
  69. * @param string|null $order_id
  70. * @param string|null $trade_no
  71. * @return bool
  72. */
  73. public function aliyunProduct(string $order_id = null, string $trade_no = null)
  74. {
  75. if (!$order_id || !$trade_no) {
  76. return false;
  77. }
  78. try {
  79. /** @var StoreOrderSuccessServices $services */
  80. $services = app()->make(StoreOrderSuccessServices::class);
  81. $orderInfo = $services->getOne(['order_id' => $order_id]);
  82. if (!$orderInfo) return true;
  83. if ($orderInfo->paid) return true;
  84. return $services->paySuccess($orderInfo->toArray(), PayServices::ALIAPY_PAY, ['trade_no' => $trade_no]);
  85. } catch (\Throwable $e) {
  86. return false;
  87. }
  88. }
  89. /**
  90. * 购买会员卡支付宝异步回调
  91. * @param string|null $order_id
  92. * @param string|null $trade_no
  93. * @return bool
  94. */
  95. public function aliyunMember(string $order_id = null, string $trade_no = null)
  96. {
  97. if (!$order_id || !$trade_no) {
  98. return false;
  99. }
  100. try {
  101. /** @var OtherOrderServices $services */
  102. $services = app()->make(OtherOrderServices::class);
  103. $orderInfo = $services->getOne(['order_id' => $order_id]);
  104. if (!$orderInfo) return true;
  105. if ($orderInfo->paid) return true;
  106. return $services->paySuccess($orderInfo->toArray(), PayServices::ALIAPY_PAY, ['trade_no' => $trade_no]);
  107. } catch (\Throwable $e) {
  108. return false;
  109. }
  110. }
  111. }