public static function parse($signature, $payload) { self::_validateSignature($signature, $payload); $xml = base64_decode($payload); $attributes = Braintree_Xml::buildArrayFromXml($xml); return self::factory($attributes['notification']); }
public static function parse($signature, $payload) { if (preg_match("/[^A-Za-z0-9+=\\/\n]/", $payload) === 1) { throw new Braintree_Exception_InvalidSignature("payload contains illegal characters"); } self::_validateSignature($signature, $payload); $xml = base64_decode($payload); $attributes = Braintree_Xml::buildArrayFromXml($xml); return self::factory($attributes['notification']); }
function testEscapingSpecialChars() { $expected = <<<XML <?xml version="1.0" encoding="UTF-8"?> <root> <stuff><>&'"</stuff> </root> XML; $xml = Braintree_Xml::buildXmlFromArray(array('root' => array('stuff' => '<>&\'"'))); $this->assertEquals($expected, $xml); }
private static function _buildXml($params) { return empty($params) ? null : Braintree_Xml::buildXmlFromArray($params); }
function testIncludesTheEncodingRoundtrip() { $array = array('root' => array('root' => 'bar')); $xml = Braintree_Xml::buildXmlFromArray($array); $this->assertRegExp('<\\?xml version=\\"1.0\\" encoding=\\"UTF-8\\"\\?>', $xml); }