normalize 格式化url path方法会格式化openid,导致请求接口微信不能正确获取openid
yybawang opened this issue · 2 comments
yybawang commented
TheNorthMemory commented
normalize
在还原URL的时候,具有大小写敏感特性,规则如下:
- 首字符大写是映射PHP
interface接口
作用; - 中间大写字符是映射连字符
hyphen(-)
作用; - 首尾字符如果是下划线
undersore(_)
,是还原uri_template
作用;
例如,查询代金券详情,映射的PHP接口就形如:
<?php declare(strict_types=1);/* Generated file. DO NOT EDIT! */
namespace WeChatPay\OpenAPI\V3\Marketing\Favor\Users\_openid_\Coupons;
use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\Promise\PromiseInterface;
/**
* 这是一个纯接口描述文件,由程序自动生成,旨在为IDE提供结构提示,无他用。
*/
interface _coupon_id_
{
/**
* 查询代金券详情(同步模式)
* @param array<string,mixed> $options
* @link https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/convention/chapter3_6.shtml
*/
public function get(array $options = [
'openid' => '',
'coupon_id' => '',
'query' => [
'appid' => '',
],
]): ResponseInterface;
/**
* 查询代金券详情(异步模式)
* @param array<string,mixed> $options
* @link https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/convention/chapter3_6.shtml#async
*/
public function getAsync(array $options = [
'openid' => '',
'coupon_id' => '',
'query' => [
'appid' => '',
],
]): PromiseInterface;
}
上述文件符合Psr4
规范,可正常反推出源URL的本来样子。
如果用PHPStorm,建议在开发环境再安装 iwechatpay/openapi
接口描述开发包,以上提示皆可自动提示完成。