1<?php 2 3// File generated from our OpenAPI spec 4 5namespace Stripe\Service; 6 7class PromotionCodeService extends \Stripe\Service\AbstractService 8{ 9 /** 10 * Returns a list of your promotion codes. 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/promotion_codes', $params, $opts); 22 } 23 24 /** 25 * A promotion code points to a coupon. You can optionally restrict the code to a 26 * specific customer, redemption limit, and expiration date. 27 * 28 * @param null|array $params 29 * @param null|array|\Stripe\Util\RequestOptions $opts 30 * 31 * @throws \Stripe\Exception\ApiErrorException if the request fails 32 * 33 * @return \Stripe\PromotionCode 34 */ 35 public function create($params = null, $opts = null) 36 { 37 return $this->request('post', '/v1/promotion_codes', $params, $opts); 38 } 39 40 /** 41 * Retrieves the promotion code with the given ID. 42 * 43 * @param string $id 44 * @param null|array $params 45 * @param null|array|\Stripe\Util\RequestOptions $opts 46 * 47 * @throws \Stripe\Exception\ApiErrorException if the request fails 48 * 49 * @return \Stripe\PromotionCode 50 */ 51 public function retrieve($id, $params = null, $opts = null) 52 { 53 return $this->request('get', $this->buildPath('/v1/promotion_codes/%s', $id), $params, $opts); 54 } 55 56 /** 57 * Updates the specified promotion code by setting the values of the parameters 58 * passed. Most fields are, by design, not editable. 59 * 60 * @param string $id 61 * @param null|array $params 62 * @param null|array|\Stripe\Util\RequestOptions $opts 63 * 64 * @throws \Stripe\Exception\ApiErrorException if the request fails 65 * 66 * @return \Stripe\PromotionCode 67 */ 68 public function update($id, $params = null, $opts = null) 69 { 70 return $this->request('post', $this->buildPath('/v1/promotion_codes/%s', $id), $params, $opts); 71 } 72} 73