/** * @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(); }
/** * @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); }
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); }