Beispiel #1
0
    public function testPayRequest()
    {
        $request = new Ulink_PaymentRequest();
        $request->setAmount(new Ulink_Money('23.50'));
        $request->setCurrency("EUR");
        $request->setTimestamp(123);
        $request->setClientTransactionId(456);
        $request->setGoBackUrl("http://local/");
        $request->setResponseUrl("http://local2/");

        $this->assertEquals("{\"type\":\"pay\",\"timestamp\":123,\"response-url\":\"http:\/\/local2\/\",\"back-url\":\"http:\/\/local\/\",\"id\":456,\"data\":{" .
                            "\"amount\":\"23.50\",\"currency\":\"EUR\"" .
                            "}}", $request->toJson());
    }
Beispiel #2
0
    public static function createFromJson($json)
    {
        $jsonData = $json->data;

        $request = new Ulink_PaymentRequest();
        $request->setAmount(new Ulink_Money($jsonData->amount));
        $request->setCurrency($jsonData->currency);
        if (isset($json->id) && $json->id) {
            $request->setClientTransactionId($json->id);
        }
        if (isset($json->{'response-url'}) && $json->{'response-url'}) {
            $request->setResponseUrl($json->{'response-url'});
        }
        if (isset($json->{'back-url'}) && $json->{'back-url'}) {
            $request->setGoBackUrl($json->{'back-url'});
        }
        if (isset($jsonData->order) && $jsonData->order) {
            $request->setOrder(Ulink_Order::createFromJson($jsonData->order));
        }
        return $request;
    }
 /**
  * @param array $data
  * @return string
  */
 public function encrypt($data = array())
 {
     $defaults = array('clientTransactionId' => '', 'amount' => '0', 'order' => array(), 'currency' => null, 'goBackUrl' => null, 'responseUrl' => null);
     $data = array_merge($defaults, $data);
     $request = new Ulink_PaymentRequest();
     $request->setClientTransactionId($data['clientTransactionId']);
     $request->setAmount(new Ulink_Money($data['amount']));
     $request->setCurrency($data['currency'] ? $data['currency'] : $this->getDefaultCurrency());
     $request->setGoBackUrl($data['goBackUrl'] ? $data['goBackUrl'] : $this->getDefaultGoBackUrl());
     $request->setResponseUrl($data['responseUrl'] ? $data['responseUrl'] : $this->getDefaultResponseUrl());
     if (count($data['order'])) {
         $_order = new Ulink_Order();
         /**
          * $item = array(
          *     'name'         => 'Some Name',
          *     'description'  => 'Some Description',
          *     'oneItemPrice' => '10.90',
          *     'quantity'     => 5
          * );
          */
         foreach ($data['order'] as $item) {
             $_order->addItem(new Ulink_OrderItem($item['name'], $item['description'], new Ulink_Money($item['oneItemPrice']), isset($item['quantity']) ? $item['quantity'] : 1));
         }
         $request->setOrder($_order);
     }
     $requestJson = $request->toJson();
     $requestJson = Ulink_CryptoUtils::seal($requestJson, $this->getPublicKeyPem());
     $packet = new Ulink_TransportPacket();
     $packet->setRequest($requestJson);
     $signature = Ulink_CryptoUtils::sign($requestJson, $this->getPrivateKeyPem());
     $packet->setSignature($signature);
     $packet->setClientId($this->getClientId());
     return $packet->toJson();
 }