Ogone\Tests\OgoneTest::provideAliasResponse PHP 메소드

provideAliasResponse() 공개 메소드

public provideAliasResponse ( $createAlias = true, $noValidCardnumber = false )
    public function provideAliasResponse($createAlias = true, $noValidCardnumber = false)
    {
        /*
         *  Create an alias request to Ogone
         */
        $passphrase = new Passphrase(PASSPHRASE_SHA_IN);
        $shaComposer = new AllParametersShaComposer($passphrase);
        $createAliasRequest = new CreateAliasRequest($shaComposer);
        $createAliasRequest->setPspid(PSPID);
        $createAliasRequest->setAccepturl('http://www.example.com');
        $createAliasRequest->setExceptionurl('http://www.example.com');
        if ($createAlias == true) {
            $unique_alias = uniqid('customer_');
            // create a unique alias
            $alias = new Alias($unique_alias);
            $createAliasRequest->setAlias($alias);
        }
        $createAliasRequest->validate();
        $body = array();
        foreach ($createAliasRequest->toArray() as $key => $value) {
            $body[strtoupper($key)] = $value;
        }
        $body['SHASIGN'] = $createAliasRequest->getShaSign();
        $body['CN'] = 'Don Corleone';
        $body['CARDNO'] = $noValidCardnumber ? '' : '4111111111111111';
        // Ogone Visa test cardnumber
        $body['CVC'] = '777';
        $body['ED'] = date('my', strtotime('+1 year'));
        // test-date should be in the future
        $client = new Client($createAliasRequest->getOgoneUri());
        $request = $client->post(null, null, $body);
        $response = $request->send();
        $url = parse_url($response->getInfo('url'));
        $params = array();
        parse_str($url['query'], $params);
        /*
         * Validate alias response from Ogone
         */
        $createAliasResponse = new CreateAliasResponse($params);
        return $createAliasResponse;
    }