PayNotifyServices.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 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)
  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(), PayServices::WEIXIN_PAY, ['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)
  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]);
  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)
  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());
  70. } catch (\Exception $e) {
  71. return false;
  72. }
  73. }
  74. /**
  75. * 支付宝支付-异步回调处理事件
  76. * @param string|null $order_id
  77. * @param string|null $trade_no
  78. * @return bool
  79. */
  80. public function aliyunProduct(string $order_id = null, string $trade_no = null)
  81. {
  82. if (!$order_id || !$trade_no) {
  83. return false;
  84. }
  85. try {
  86. /** @var StoreOrderSuccessServices $services */
  87. $services = app()->make(StoreOrderSuccessServices::class);
  88. $orderInfo = $services->getOne(['order_id' => $order_id]);
  89. if (!$orderInfo) return true;
  90. if ($orderInfo->paid) return true;
  91. return $services->paySuccess($orderInfo->toArray(), PayServices::ALIAPY_PAY, ['trade_no' => $trade_no]);
  92. } catch (\Throwable $e) {
  93. return false;
  94. }
  95. }
  96. /**
  97. * 支付宝支付-购买会员卡
  98. * @param string|null $order_id
  99. * @param string|null $trade_no
  100. * @return bool
  101. */
  102. public function aliyunMember(string $order_id = null, string $trade_no = null)
  103. {
  104. if (!$order_id || !$trade_no) {
  105. return false;
  106. }
  107. try {
  108. /** @var OtherOrderServices $services */
  109. $services = app()->make(OtherOrderServices::class);
  110. $orderInfo = $services->getOne(['order_id' => $order_id]);
  111. if (!$orderInfo) return true;
  112. if ($orderInfo->paid) return true;
  113. return $services->paySuccess($orderInfo->toArray(), PayServices::ALIAPY_PAY, ['trade_no' => $trade_no]);
  114. } catch (\Throwable $e) {
  115. return false;
  116. }
  117. }
  118. /**
  119. * 通联支付-订单支付成功之后
  120. * @param string|null $order_id 订单id
  121. * @return bool
  122. */
  123. public function allinProduct(string $order_id = null, string $trade_no = null)
  124. {
  125. try {
  126. /** @var StoreOrderSuccessServices $services */
  127. $services = app()->make(StoreOrderSuccessServices::class);
  128. $orderInfo = $services->getOne(['order_id' => $order_id]);
  129. if (!$orderInfo) return true;
  130. if ($orderInfo->paid) return true;
  131. return $services->paySuccess($orderInfo->toArray(), PayServices::ALLIN_PAY, ['trade_no' => $trade_no]);
  132. } catch (\Exception $e) {
  133. return false;
  134. }
  135. }
  136. /**
  137. * 通联支付-充值成功后
  138. * @param string|null $order_id 订单id
  139. * @return bool
  140. */
  141. public function allinUserRecharge(string $order_id = null, string $trade_no = null)
  142. {
  143. try {
  144. /** @var UserRechargeServices $userRecharge */
  145. $userRecharge = app()->make(UserRechargeServices::class);
  146. if ($userRecharge->be(['order_id' => $order_id, 'paid' => 1])) return true;
  147. return $userRecharge->rechargeSuccess($order_id, ['trade_no' => $trade_no]);
  148. } catch (\Exception $e) {
  149. return false;
  150. }
  151. }
  152. /**
  153. * 通联支付-购买会员
  154. * @param string|null $order_id
  155. * @return bool
  156. */
  157. public function allinMember(string $order_id = null, string $trade_no = null)
  158. {
  159. try {
  160. /** @var OtherOrderServices $services */
  161. $services = app()->make(OtherOrderServices::class);
  162. $orderInfo = $services->getOne(['order_id' => $order_id]);
  163. if (!$orderInfo) return true;
  164. if ($orderInfo->paid) return true;
  165. return $services->paySuccess($orderInfo->toArray(), PayServices::ALLIN_PAY);
  166. } catch (\Exception $e) {
  167. return false;
  168. }
  169. }
  170. }