Example #1
0
 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]);
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 /**
  * @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;
 }