RenewClass.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace biz\renew\classes;
  3. use biz\base\classes\BaseClass;
  4. use biz\sj\classes\SjClass;
  5. use common\components\util;
  6. use Yii;
  7. class RenewClass extends BaseClass
  8. {
  9. public static $baseFile = '\biz\renew\models\Renew';
  10. const STATUS_UN_PAY = 1;
  11. const STATUS_HAS_PAY = 2;
  12. public static function thirdPay($payWay, $orderSn, $totalFee, $attach)
  13. {
  14. $order = self::getByCondition(['orderSn' => $orderSn], true);
  15. if (empty($order)) {
  16. $msg = "没有找到购买续期订单 orderSn:{$orderSn}";
  17. Yii::info($msg);
  18. util::fail($msg);
  19. }
  20. if ($order->actPrice != $totalFee) {
  21. $msg = "购买续期订单金额与回调通知金额不一致 orderSn:{$orderSn} {$order->actPrice} {$totalFee}";
  22. Yii::info($msg);
  23. util::fail($msg);
  24. }
  25. if (isset($order->status) == false) {
  26. util::fail('没有找到订单状态');
  27. }
  28. if ($order->status != self::STATUS_UN_PAY) {
  29. util::fail('订单不是待付款状态');
  30. }
  31. //临时解决微信一秒内通知二次问题
  32. $id = $order->id;
  33. $order = self::getLockById($id);
  34. parse_str($attach);
  35. //是否充值免费续期
  36. $sjId = isset($sjId) ? $sjId : 0;
  37. $setId = isset($setId) ? $setId : 0;
  38. $order->sjId = $sjId;
  39. $order->setId = $setId;
  40. $order->status = self::STATUS_HAS_PAY;
  41. $order->payWay = $payWay;
  42. $order->save();
  43. SjClass::renewOneYear($sjId, 2, ['amount' => $order->actPrice, 'orderSn' => $orderSn]);
  44. }
  45. }