Beispiel #1
0
 /**
  * @param \AdamStipak\Webpay\PaymentRequest $request
  * @return array
  */
 public function createPaymentParam(PaymentRequest $request)
 {
     // digest request
     $request->setMerchantNumber($this->merchantNumber);
     $params = $request->getParams();
     $request->setDigest($this->signer->sign($params));
     return $request->getParams();
 }
Beispiel #2
0
 /**
  * @expectedException \AdamStipak\Webpay\PaymentResponseException
  */
 public function testPaymentHasErrorInVerifyPaymentResponse()
 {
     $merchantNumber = 123456789;
     $params = ['OPERATION' => 'operation', 'ORDERNUMBER' => 'ordernumber', 'MERORDERNUMBER' => 'merordernum', 'PRCODE' => 1, 'SRCODE' => 2, 'RESULTTEXT' => 'resulttext'];
     $signer = new Signer(__DIR__ . '/keys/test_key.pem', 'changeit', __DIR__ . '/keys/test_cert.pem');
     $digest = $signer->sign($params);
     $params['MERCHANTNUMBER'] = $merchantNumber;
     $digest1 = $signer->sign($params);
     $response = new PaymentResponse($params['OPERATION'], $params['ORDERNUMBER'], $params['MERORDERNUMBER'], $params['PRCODE'], $params['SRCODE'], $params['RESULTTEXT'], $digest, $digest1);
     $api = new Api($merchantNumber, 'http://foo.bar', $signer);
     $api->verifyPaymentResponse($response);
 }
Beispiel #3
0
 public function testSign()
 {
     $privateKeyResource = openssl_pkey_get_private(file_get_contents(__DIR__ . '/keys/test_key.pem'), 'changeit');
     $params = array('param1' => 'foo', 'param2' => 'bar');
     $digestText = implode('|', $params);
     openssl_sign($digestText, $expectedDigest, $privateKeyResource);
     $expectedDigest = base64_encode($expectedDigest);
     $signer = new Signer(__DIR__ . '/keys/test_key.pem', 'changeit', __DIR__ . '/keys/test_cert.pem');
     $this->assertEquals($expectedDigest, $signer->sign($params));
 }
 /**
  * @depends testSignBC
  * @param string $seededSignatureFileKey Signature produced with a file key
  */
 public function testStringKey($seededSignatureFileKey)
 {
     $key = file_get_contents(__DIR__ . self::KEY_FILE_NAME);
     $signer = new Signer(self::WMID, $key, self::KEY_PASSWORD);
     // Seed the random generator with 0 to get a predictable signature
     mt_srand(0);
     $seededSignatureStringKey = $signer->sign(self::TEST_STRING);
     $this->assertEquals($seededSignatureFileKey, $seededSignatureStringKey);
 }