我out_trade_no为:DRYER2412216461385,请求的时候说:GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/-d-r-y-e-r2412216461385?mchid=1675127761` resulted in a `404 Not Found`
为啥订单号前面字符被处理了?
public function queryOrder($out_trade_no,$transaction_id)
{
$instance = $this->payConfig();
try {
$resp = $instance
->chain("v3/pay/transactions/out-trade-no/{$out_trade_no}?mchid={$this->mch_id}")
->get();
// ->v3->pay->transactions->id->_transaction_id_
// ->getAsync([
// // Query 参数
// 'query' => ['mchid' => $this->mch_id],
// // 变量名 => 变量值
// 'out_trade_no' => $out_trade_no,
// 'transaction_id' => $transaction_id,
// ])->wait();
if ($resp->getStatusCode() == 200) {
print_r(Json::decode($resp->getBody()));
exit;
}
echo $resp->getStatusCode(), PHP_EOL;
echo (string)$resp->getBody(), PHP_EOL;
} catch (\Exception $e) {
// 进行错误处理
echo $e->getMessage(), PHP_EOL;
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$r = $e->getResponse();
echo $r->getStatusCode() . ' ' . $r->getReasonPhrase(), PHP_EOL;
echo (string)$r->getBody(), PHP_EOL, PHP_EOL, PHP_EOL;
}
echo $e->getTraceAsString(), PHP_EOL;
}
}
$resp = $instance ->v3->pay->transactions->outTradeNo->_out_trade_no_ ->getAsync([ // Query 参数 'query' => ['mchid' => $this->mch_id], // 变量名 => 变量值 'out_trade_no' => $out_trade_no, ])->wait(); 坑啊,链式的out_trade_no改成outTradeNo这样好了