public function testOtherAccessors() { $request = new ChargeRequest(); $this->assertTrue($request->isCapture()); $this->assertSame([], $request->getProducts()); $request->setCapture(false)->addProduct($productA = new Product('product-a-id'))->addProduct($productB = new Product('product-b-id')); $this->assertFalse($request->isCapture()); $this->assertCount(2, $request->getProducts()); $this->assertSame($productA, $request->getProducts()[0]); $this->assertSame($productB, $request->getProducts()[1]); }
/** * Creates a new charge. * * @param ChargeRequest $request * @return Charge * * @throws RequestException */ public function charge(ChargeRequest $request) { $result = $this->request('POST', '/charges', ['card' => $request->getToken(), 'amount' => $request->getAmount() ? $request->getAmount()->getAmount() : null, 'currency' => $request->getAmount() ? $request->getAmount()->getCurrency() : null, 'capture' => $request->isCapture() ? 'true' : 'false', 'products' => json_encode($request->getProducts())]); return $this->objectConverter->convert($result); }
/** * @return ChargeRequest */ private function createChargeRequest() { $request = new ChargeRequest(); $request->setToken(new Token('_card_'))->setAmount(new Money(1000, 'JPY'))->setCapture(false)->addProduct((new Product('product-a'))->setTitle('Product.A')->setDescription('This is Product.A')->setPrice(new Money(500, 'JPY'))->setLanguage('JP')->setCount(1)->setStock(10))->addProduct((new Product('product-b'))->setTitle('Product.B')->setDescription('This is Product.B')->setPrice(new Money(500, 'JPY'))->setLanguage('JP')->setCount(3)->setStock(5)); return $request; }