Stripe payments Omnipay条带添加列表计划限制参数
默认情况下,条带“列出所有计划”api调用最多只返回10个计划;有一个可选的限制参数,我希望将其设置为值100以提高默认限制- 我使用的是Omnipay Stripe,我可以返回10份计划,代码如下:Stripe payments Omnipay条带添加列表计划限制参数,stripe-payments,omnipay,Stripe Payments,Omnipay,默认情况下,条带“列出所有计划”api调用最多只返回10个计划;有一个可选的限制参数,我希望将其设置为值100以提高默认限制- 我使用的是Omnipay Stripe,我可以返回10份计划,代码如下: $response = $this->gateway->listPlans($params)->send(); if ($response->isSuccessful()) { $data = $response->getData(); return
$response = $this->gateway->listPlans($params)->send();
if ($response->isSuccessful()) {
$data = $response->getData();
return $data['data'];
}
下面,我尝试使用以下代码将limit参数设置为100:
$request = $this->gateway->listPlans();
$data = $request->getData();
$data['limit'] = 100;
$response = $request->sendData($data);
if ($response->isSuccessful()) {
$data = $response->getData();
return $data['data'];
}
但这仍然不会返回超过10个计划。我已经成功地进行了测试,以证明极限参数确实有效,但omnipay stripe还没有成功。有什么想法吗
我已尝试将以下函数添加到omnipay\stripe\src\Message\ListPlansRequest.php
并将我的代码更改为:
$request = $this->gateway->listPlans();
$request->setLimit('100');
$data = $request->getData();
$response = $request->sendData($data);
但是仍然只返回了10个计划,并且限制参数没有记录在条带请求获取日志中。条带列表计划函数是一个获取请求,因此限制参数需要位于查询字符串中,如 我希望Omnipay网关逻辑知道ListPlansRequest HttpMethod是“GET”,能够将任何参数集添加到CURLOPT_URL中的查询字符串中。因此,我在项目中尝试了以下代码:
$request = $this->gateway->listPlans(array('limit' => 100))->send();
$request = $this->gateway->listPlans(array('limit' => 100))->send();
及
但两者都没有应用极限参数
因此,我向ListPlansRequest添加了以下类方法:
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;
}
我的项目中的以下代码现在返回所有21个订阅计划:
public function getEndpoint()
{
$query = '';
$limit = (int)$this->getLimit();
if($limit > 0) $query = '?' . http_build_query(array('limit' => $limit));
return $this->endpoint.'/plans' . $query;
}
$request = $this->gateway->listPlans(array('limit' => 100))->send();