Omnipay Stripe 添加 listPlan 限制参数
Omnipay Stripe add listPlan limit parameter
Stripe 'list all plans' api 默认调用仅 returns 最多 10 个计划;有一个可选的限制参数,我希望将其设置为值 100 以提高默认限制 - Stripe api ref.
我正在使用 Omnipay-Stripe,我可以使用以下代码 return 10 个计划:
$response = $this->gateway->listPlans($params)->send();
if ($response->isSuccessful()) {
$data = $response->getData();
return $data['data'];
}
在 this SO answer 之后,我正在尝试使用以下代码将限制参数设置为 100:
$request = $this->gateway->listPlans();
$data = $request->getData();
$data['limit'] = 100;
$response = $request->sendData($data);
if ($response->isSuccessful()) {
$data = $response->getData();
return $data['data'];
}
但这还是不会return超过10个计划。我已成功测试 stripe-php 以证明限制参数确实有效,但 omnipay-stripe 还没有成功。有什么想法吗?
我尝试将以下函数添加到 omnipay\stripe\src\Message\ListPlansRequest。php
public function setLimit($limit)
{
return $this->setParameter('limit', $limit);
}
并将我的代码更改为:
$request = $this->gateway->listPlans();
$request->setLimit('100');
$data = $request->getData();
$response = $request->sendData($data);
但仍然只有 10 个计划 returned 并且限制参数没有记录在 Stripe 请求 GET 日志中。
Stripe listPlans 函数是对 https://api.stripe.com/v1/plans so the limit parameter needs to be in a query string like https://api.stripe.com/v1/plans?limit=3
的 GET 请求
我希望知道 ListPlansRequest HttpMethod 是 'GET' 的 Omnipay 网关逻辑会将任何参数集添加到 CURLOPT_URL 中的查询字符串。所以我在我的项目中尝试了以下代码:
$request = $this->gateway->listPlans(array('limit' => 100))->send();
和
$request = $this->gateway->listPlans()->initialize(array('setLimit' => 100))->send();
但都没有应用限制参数。
所以我向 ListPlansRequest 添加了以下 class 方法:
public function getLimit()
{
return $this->getParameter('limit');
}
public function setLimit($limit)
{
return $this->setParameter('limit', $limit);
}
和扩展方法获取端点:
public function getEndpoint()
{
$query = '';
$limit = (int)$this->getLimit();
if($limit > 0) $query = '?' . http_build_query(array('limit' => $limit));
return $this->endpoint.'/plans' . $query;
}
我项目中的以下代码现在 returns 所有 21 个订阅计划:
$request = $this->gateway->listPlans(array('limit' => 100))->send();
Stripe 'list all plans' api 默认调用仅 returns 最多 10 个计划;有一个可选的限制参数,我希望将其设置为值 100 以提高默认限制 - Stripe api ref.
我正在使用 Omnipay-Stripe,我可以使用以下代码 return 10 个计划:
$response = $this->gateway->listPlans($params)->send();
if ($response->isSuccessful()) {
$data = $response->getData();
return $data['data'];
}
在 this SO answer 之后,我正在尝试使用以下代码将限制参数设置为 100:
$request = $this->gateway->listPlans();
$data = $request->getData();
$data['limit'] = 100;
$response = $request->sendData($data);
if ($response->isSuccessful()) {
$data = $response->getData();
return $data['data'];
}
但这还是不会return超过10个计划。我已成功测试 stripe-php 以证明限制参数确实有效,但 omnipay-stripe 还没有成功。有什么想法吗?
我尝试将以下函数添加到 omnipay\stripe\src\Message\ListPlansRequest。php
public function setLimit($limit)
{
return $this->setParameter('limit', $limit);
}
并将我的代码更改为:
$request = $this->gateway->listPlans();
$request->setLimit('100');
$data = $request->getData();
$response = $request->sendData($data);
但仍然只有 10 个计划 returned 并且限制参数没有记录在 Stripe 请求 GET 日志中。
Stripe listPlans 函数是对 https://api.stripe.com/v1/plans so the limit parameter needs to be in a query string like https://api.stripe.com/v1/plans?limit=3
的 GET 请求我希望知道 ListPlansRequest HttpMethod 是 'GET' 的 Omnipay 网关逻辑会将任何参数集添加到 CURLOPT_URL 中的查询字符串。所以我在我的项目中尝试了以下代码:
$request = $this->gateway->listPlans(array('limit' => 100))->send();
和
$request = $this->gateway->listPlans()->initialize(array('setLimit' => 100))->send();
但都没有应用限制参数。
所以我向 ListPlansRequest 添加了以下 class 方法:
public function getLimit()
{
return $this->getParameter('limit');
}
public function setLimit($limit)
{
return $this->setParameter('limit', $limit);
}
和扩展方法获取端点:
public function getEndpoint()
{
$query = '';
$limit = (int)$this->getLimit();
if($limit > 0) $query = '?' . http_build_query(array('limit' => $limit));
return $this->endpoint.'/plans' . $query;
}
我项目中的以下代码现在 returns 所有 21 个订阅计划:
$request = $this->gateway->listPlans(array('limit' => 100))->send();