GetPayTradeNoJob.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace App\Jobs;
  3. use App\Model\CoinsOrderModel;
  4. use App\Model\PaymentModel;
  5. use App\Model\VipOrderModel;
  6. use App\Repositories\CoinsRepository;
  7. use App\Repositories\Service\Payment\PaymentInterface;
  8. use App\Repositories\VipRepository;
  9. use Hyperf\AsyncQueue\Job;
  10. class GetPayTradeNoJob extends Job
  11. {
  12. public $params;
  13. public function __construct($params)
  14. {
  15. // 这里最好是普通数据,不要使用携带 IO 的对象,比如 PDO 对象
  16. $this->params = $params;
  17. }
  18. public function handle()
  19. {
  20. try {
  21. //获取通道商户号
  22. $paymentInfo = PaymentModel::query()->where('pay_code', $this->params['gateway'])->first(['partner_id']);
  23. $tradeNo = PaymentInterface::factory($this->params['gateway'])->queryRradeNo($this->params['orderSn'], $paymentInfo->partner_id);
  24. if (empty($tradeNo)) {
  25. return true;
  26. }
  27. if ($this->params['type'] == 1) {
  28. VipOrderModel::where('order_sn', $this->params['orderSn'])->update(['trade_no' => $tradeNo]);
  29. } else {
  30. CoinsOrderModel::where('order_sn', $this->params['orderSn'])->update(['trade_no' => $tradeNo]);
  31. }
  32. } catch (\Exception $exception) {
  33. logger('GetPayTradeNoJob', [$exception->getMessage()]);
  34. }
  35. }
  36. }