/** * returns the request fields to post to service */ public function prepareRequest() { $this->validateRequest(); $xmlBuilder = new HostedXmlBuilder(); // get our merchantid & secret $merchantId = $this->config->getMerchantId(\ConfigurationProvider::HOSTED_TYPE, $this->countryCode); $secret = $this->config->getSecret(\ConfigurationProvider::HOSTED_TYPE, $this->countryCode); $message = $this->createRequestXml(); // calculate mac $mac = hash("sha512", base64_encode($message) . $secret); // encode the request elements $request_fields = array('merchantid' => urlencode($merchantId), 'message' => urlencode(base64_encode($message)), 'mac' => urlencode($mac)); return $request_fields; }
/** * populates the payment form object from the given parameters and generates * the $completeHtmlFormWithSubmitButton & $htmlFormFieldsAsArray attributes * * @param type $xmlMessage * @param ConfigurationProvider $config * @param string $countryCode */ function __construct($xmlMessage, $config, $countryCode = NULL) { $this->xmlMessage = $xmlMessage; $this->xmlMessageBase64 = base64_encode($xmlMessage); $this->endPointUrl = $config->getEndPoint(\ConfigurationProvider::HOSTED_TYPE); $this->merchantid = $config->getMerchantId(\ConfigurationProvider::HOSTED_TYPE, $countryCode); $this->secretWord = $config->getSecret(\ConfigurationProvider::HOSTED_TYPE, $countryCode); $this->mac = hash("sha512", $this->xmlMessageBase64 . $this->secretWord); $this->setForm(); $this->setHtmlFields(); $this->setRawFields(); $this->setSubmitMessage(); }