---- dataentry ---- type : integration # do not change this line systems : FoxyCart # the system(s) that the integration is for, separated with commas if more than one name : FoxyCart XML to File Testing Script # the name of the integration description : Write the FoxyCart XML datafeed to a file tags : xml, datafeed, testing # tags, separated by commas. don't include the "system" here. date_dt : 2010-05-24 # the date in YYYY-MM-DD format version : 1.0 # if you have a version for your code, enter it here developer_url : http://www.themancan.com/ # if you'd like a link back to your site, stick it here ---- ====== test xml write to file ====== ===== Description ===== The purpose of this file is to help you set up and debug your FoxyCart XML DataFeed scripts. It will take the XML from FoxyCart, decrypt it, and write it to a file on your server. **READ THE WARNING BELOW. This script is FOR TESTING ONLY.** ===== Installation ===== Check the comments in the file. ===== Requirements ===== PHP ===== Code ===== * @version $Id: class.rc4crypt.php,v 3.2 2006/03/10 05:47:24 mukul Exp $ * @copyright Copyright © 2006 Mukul Sabharwal * @license http://www.gnu.org/copyleft/gpl.html * @package RC4Crypt */ /** * RC4 Class * @package RC4Crypt */ class rc4crypt { /** * The symmetric encryption function * * @param string $pwd Key to encrypt with (can be binary of hex) * @param string $data Content to be encrypted * @param bool $ispwdHex Key passed is in hexadecimal or not * @access public * @return string */ public static function encrypt ($pwd, $data, $ispwdHex = 0) { if ($ispwdHex) $pwd = @pack('H*', $pwd); // valid input, please! $key[] = ''; $box[] = ''; $cipher = ''; $pwd_length = strlen($pwd); $data_length = strlen($data); for ($i = 0; $i < 256; $i++) { $key[$i] = ord($pwd[$i % $pwd_length]); $box[$i] = $i; } for ($j = $i = 0; $i < 256; $i++) { $j = ($j + $box[$i] + $key[$i]) % 256; $tmp = $box[$i]; $box[$i] = $box[$j]; $box[$j] = $tmp; } for ($a = $j = $i = 0; $i < $data_length; $i++) { $a = ($a + 1) % 256; $j = ($j + $box[$a]) % 256; $tmp = $box[$a]; $box[$a] = $box[$j]; $box[$j] = $tmp; $k = $box[(($box[$a] + $box[$j]) % 256)]; $cipher .= chr(ord($data[$i]) ^ $k); } return $cipher; } /** * Decryption, recall encryption * * @param string $pwd Key to decrypt with (can be binary of hex) * @param string $data Content to be decrypted * @param bool $ispwdHex Key passed is in hexadecimal or not * @access public * @return string */ public static function decrypt ($pwd, $data, $ispwdHex = 0) { return rc4crypt::encrypt($pwd, $data, $ispwdHex); } } ?>