weizong song 5 years ago
parent 5f0762e60e
commit 7e33e17d2f

@ -0,0 +1,63 @@
<?php
namespace App\Console\Commands;
use App\Libs\WxMicroPay;
use App\Models\Recharge;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class SyncWeixinRechargeState extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'sync-recharge-pay-state:weixin';
/**
* The console command description.
*
* @var string
*/
protected $description = 'sync recharge pay state';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$threshold = 5;
$offset_seconds = 30; //支付发起后30秒开始轮询
$due_minutes = 5; //支付发起后第一次开始轮询的时间往后延迟5分钟后不再轮询
$last_id = cache("last_sync_weixin_recharge_id", 0);
DB::enableQueryLog();
$recharges = (new Recharge())->where("id", ">", $last_id)->whereNull("paid_at")->where("payment", "weixin")->whereRaw()->limit($threshold)->get();
if (!$recharges->count()) {
cache(['last_sync_weixin_recharge_id' => null], now()->addSeconds(90));
echo "nothing";
return;
}
foreach ($recharges as $recharge) {
$result = (new WxMicroPay())->manualQuery($recharge);
dump($result);
}
cache(['last_sync_weixin_recharge_id' => $recharges->last()->id], now()->addSeconds(90));
}
}

@ -56,7 +56,7 @@ class WxMicroPay extends WxPayCommon
//查询支付结果
try {
$out_trade_no = $this->parameters["out_trade_no"];
$query_times = 10;
$query_times = 15;
while ($query_times > 0) {
$query_result = $this->orderQuery($out_trade_no);
if ($query_result["return_code"] != "SUCCESS" && $result["result_code"] != "SUCCESS") {

Loading…
Cancel
Save