PaymentCallbackRepair.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: shenyang
  5. * Date: 2018/8/15
  6. * Time: 下午3:53
  7. */
  8. namespace app\backend\modules\payOrder\fix;
  9. use app\common\events\payment\ChargeComplatedEvent;
  10. use app\common\exceptions\AppException;
  11. use app\common\models\Order;
  12. use app\common\models\PayOrder;
  13. use app\common\models\PayType;
  14. use app\frontend\modules\order\services\OrderService;
  15. class PaymentCallbackRepair
  16. {
  17. public $message=[];
  18. /**
  19. * @var PayOrder
  20. */
  21. private $payOrder;
  22. /**
  23. * PaymentCallbackRepair constructor.
  24. * @param PayOrder $payOrder
  25. */
  26. public function __construct(PayOrder $payOrder)
  27. {
  28. $this->payOrder = $payOrder;
  29. }
  30. /**
  31. * @throws AppException
  32. */
  33. public function handle()
  34. {
  35. $this->message[]="{$this->payOrder->orderPay->pay_sn}开始修复";
  36. if(!$this->check()){
  37. return false;
  38. }
  39. OrderService::ordersPay(['order_pay_id' => $this->payOrder->orderPay->id,'pay_type_id'=>$this->payOrder->pay_type_id]);
  40. event(new ChargeComplatedEvent([
  41. 'order_sn' => $this->payOrder->orderPay->pay_sn,
  42. 'pay_sn' => $this->payOrder->trade_no,
  43. 'order_pay_id' => $this->payOrder->orderPay->id
  44. ]));
  45. $this->message[]="{$this->payOrder->orderPay->pay_sn}已修复";
  46. return $this->message;
  47. }
  48. /**
  49. * @return bool
  50. */
  51. public function check()
  52. {
  53. if($this->payOrder->status != 2){
  54. $this->message[] = "平台支付记录状态为{$this->payOrder->status_name}";
  55. return false;
  56. }
  57. foreach ($this->payOrder->orderPay->orders as $order){
  58. /**
  59. * @var Order $order
  60. */
  61. if($order->status != 0){
  62. $this->message[] = "订单状态为{$order->statusName}";
  63. return false;
  64. }
  65. }
  66. return true;
  67. }
  68. }