1<?php 2 3// File generated from our OpenAPI spec 4 5namespace Stripe\Service; 6 7class PlanService extends \Stripe\Service\AbstractService 8{ 9 /** 10 * Returns a list of your plans. 11 * 12 * @param null|array $params 13 * @param null|array|\Stripe\Util\RequestOptions $opts 14 * 15 * @throws \Stripe\Exception\ApiErrorException if the request fails 16 * 17 * @return \Stripe\Collection 18 */ 19 public function all($params = null, $opts = null) 20 { 21 return $this->requestCollection('get', '/v1/plans', $params, $opts); 22 } 23 24 /** 25 * You can now model subscriptions more flexibly using the <a href="#prices">Prices 26 * API</a>. It replaces the Plans API and is backwards compatible to simplify your 27 * migration. 28 * 29 * @param null|array $params 30 * @param null|array|\Stripe\Util\RequestOptions $opts 31 * 32 * @throws \Stripe\Exception\ApiErrorException if the request fails 33 * 34 * @return \Stripe\Plan 35 */ 36 public function create($params = null, $opts = null) 37 { 38 return $this->request('post', '/v1/plans', $params, $opts); 39 } 40 41 /** 42 * Deleting plans means new subscribers can’t be added. Existing subscribers aren’t 43 * affected. 44 * 45 * @param string $id 46 * @param null|array $params 47 * @param null|array|\Stripe\Util\RequestOptions $opts 48 * 49 * @throws \Stripe\Exception\ApiErrorException if the request fails 50 * 51 * @return \Stripe\Plan 52 */ 53 public function delete($id, $params = null, $opts = null) 54 { 55 return $this->request('delete', $this->buildPath('/v1/plans/%s', $id), $params, $opts); 56 } 57 58 /** 59 * Retrieves the plan with the given ID. 60 * 61 * @param string $id 62 * @param null|array $params 63 * @param null|array|\Stripe\Util\RequestOptions $opts 64 * 65 * @throws \Stripe\Exception\ApiErrorException if the request fails 66 * 67 * @return \Stripe\Plan 68 */ 69 public function retrieve($id, $params = null, $opts = null) 70 { 71 return $this->request('get', $this->buildPath('/v1/plans/%s', $id), $params, $opts); 72 } 73 74 /** 75 * Updates the specified plan by setting the values of the parameters passed. Any 76 * parameters not provided are left unchanged. By design, you cannot change a 77 * plan’s ID, amount, currency, or billing cycle. 78 * 79 * @param string $id 80 * @param null|array $params 81 * @param null|array|\Stripe\Util\RequestOptions $opts 82 * 83 * @throws \Stripe\Exception\ApiErrorException if the request fails 84 * 85 * @return \Stripe\Plan 86 */ 87 public function update($id, $params = null, $opts = null) 88 { 89 return $this->request('post', $this->buildPath('/v1/plans/%s', $id), $params, $opts); 90 } 91} 92