JoinpayCrontabController.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace addons\JoinPay\console\controllers;
  3. use common\components\payment\AlternativePay;
  4. use common\enums\AddonsEnum;
  5. use common\enums\PayTypeEnum;
  6. use common\enums\StatusEnum;
  7. use common\models\common\PaidSinglePayLog;
  8. use common\models\common\PaymentTrade;
  9. use common\models\common\PaymentTradeOrder;
  10. use common\models\mall\MallAddons;
  11. use common\models\user\UserPartitionRelationship;
  12. use yii\console\Controller;
  13. use yii\console\ExitCode;
  14. class JoinpayCrontabController extends Controller
  15. {
  16. /**
  17. * 更新汇聚代付订单状态
  18. * @author zmz
  19. * @time 2021-06-03
  20. */
  21. public function actionDealPayLog()
  22. {
  23. $query = PaidSinglePayLog::find()->where(['status' => [PaidSinglePayLog::STATUS_CHECKING]])->orderBy('id desc')->limit(10);
  24. foreach ($query->each(100) as $log) {
  25. $is_install = MallAddons::isInstall($log->mall_id, AddonsEnum::ADDONS_NAME_JOIN_PAY);
  26. if (!$is_install) {
  27. // continue;
  28. }
  29. /** @var JoinpaySinglePayLog $log */
  30. $cfg = \Yii::$app->services->setting->addons->get($log->mall_id, AddonsEnum::ADDONS_NAME_JOIN_PAY, 'basic');
  31. $pay = new AlternativePay($cfg, $log->mall_id);
  32. $res = $pay->queryAlternativeOrder($log->merchant_order_no);
  33. if (!empty($res)) {
  34. $trans = \Yii::$app->db->beginTransaction();
  35. try {
  36. $pay->updateSinglePayStatus($log,$res);
  37. $trans->commit();
  38. } catch (\Exception $e) {
  39. $trans->rollBack();
  40. \Yii::error('修改汇聚代付失败,获取结果:' . json_encode($res));
  41. return ExitCode::UNSPECIFIED_ERROR;
  42. }
  43. }
  44. }
  45. \Yii::getLogger()->flush(true);
  46. return ExitCode::OK;
  47. }
  48. }