wechatpay-apiv3 / wechatpay-php

微信支付 APIv3 的官方 PHP Library,同时也支持 APIv2
Apache License 2.0
492 stars 100 forks source link

查询子商户模式支付的订单时,抛错“请求中含有未在API文档中定义的参数”,请问是什么原因呢? #64

Closed zouum closed 2 years ago

zouum commented 2 years ago

查询用的V3的接口“->v3->pay->transactions->id->{'{transaction_id}'}”,拼接后的请求路径为: “https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/xxxx?mchid=xxxx&sub_mch_id=xxxx”,具体抛错信息如下: 400 Bad Request {"code":"PARAM_ERROR","detail":{"location":null,"value":["/query/sub_mch_id"]},"message":"请求中含有未在API文档中定义的参数"}

TheNorthMemory commented 2 years ago

@zouum 你这是直连商户v3调用,不要给 sub_mch_id 服务商模式才需要。

TheNorthMemory commented 2 years ago

文档见这里

IDE提示数据结构见这里:

https://github.com/TheNorthMemory/wechatpay-openapi/blob/c23fe429d51d1d3fb103af288045855fc1d0ef57/src/V3/Pay/Transactions/Id/_transaction_id_.php#L13-L23

    /**
     * 微信支付订单号查询(同步模式)
     * @param array<string,mixed> $options
     * @link https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transactions/chapter3_5.shtml
     */
    public function get(array $options = [
        'transaction_id' => '',
        'query' => [
            'mchid' => '',
        ],
    ]): ResponseInterface;
zouum commented 2 years ago

@TheNorthMemory 好的,谢谢,我查的就是服务商模式支付的订单,没有描述准确。上面的问题已经解决了,是我传子商户id的参数下划线没加对,导致参数错误了