protected function prepareOrder(array $data) { isset($data['order_prefix']) or $data['order_prefix'] = fnGet($this->config, 'order_prefix'); $data['payment_gateway'] = $this->gateway; $data['payment_method'] = $this->method; $order = Order::prepare($data); return $order; }
public function testFailOrder() { $tradeId = md5(microtime()); $order = Order::prepare(['order_prefix' => 'FAILED', 'amount' => '1', 'trade_id' => $tradeId, 'product_name' => 'Test product', 'user_identifier' => 'Test User', 'client_id' => 'test_client', 'payment_gateway' => 'alipay', 'payment_method' => 'mobile_web', 'currency' => 'CNY', 'amount_in_currency' => '1']); $this->assertTrue($order->save(), $order->getStringMessages()); $order->fail(); $this->assertTrue($order->save(), $order->getStringMessages()); $this->assertEquals($order::STATUS_FAILING, $order->getStatus()); $e = null; try { $order->fail(); } catch (OrderException $e) { } $this->assertInstanceOf(OrderException::class, $e); $this->assertEquals($e::ERROR_CODE_ORDER_CANNOT_BE_FAILED, $e->getCode()); $order->confirmFail(); $this->assertTrue($order->save(), $order->getStringMessages()); $this->assertEquals($order::STATUS_FAILED, $order->getStatus()); $e = null; try { $order->confirmFail(); } catch (OrderException $e) { } $this->assertInstanceOf(OrderException::class, $e); $this->assertEquals($e::ERROR_CODE_ORDER_CANNOT_BE_FAILED, $e->getCode()); }