Personalization Bloc Issue
Hello,
I am setting a personalization bloc to encrypt and decrypt as the following:
<%
var IV_SIZE = 8; // Replace with the desired size
String.prototype.hexEncode = function () {
var result = '';
for (var i=0; i<this.length; i++) {
result += this.charCodeAt(i).toString(16);
}
return result;
}
function generateRandomString(size) {
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var result = '';
for (var i = 0; i < size; i++) {
var randomIndex = Math.floor(Math.random() * characters.length);
result += characters.charAt(randomIndex);
}
return result;
}
//Adobe Campaign JS CODE to crypt 'Hello my friend' with 'CF12D5998AE799C6' key :
var key = '11be5d01690fb6f9dfb99c79fXXXXX';
var mBuffer = new MemoryBuffer(); mBuffer.fromString(key);
var b64Key = mBuffer.toBase64();
var recipientMongoId = '',
recipientSalt = '',
deliveryCode = '',
gridCode = '',
gridVersion = '',
parentCartId = '',
delivery = '',
recipient = '',
variables = '',
randomString = '',
ivString = '',
IV_SIZE = '',
dateX = '';
if (typeof rtEvent != 'undefined') {
// Get given encryptedString, decrypt it and modify its value
var encryptedString = rtEvent.ctx.@encryptedData.toString();
var iv = ivString.slice(0, IV_SIZE).hexEncode();
encryptedString = encryptedString.slice(IV_SIZE);
var cryptkey = CryptoJS.enc.Utf8.parse('11be5d01690fb6f9dfb99cXXXXX'); //The key used, in text format
crypted = "toEncrypt"; //encrypted data
var _decrypted = CryptoJS.AES.decrypt(crypted, cryptkey, {
iv: CryptoJS.enc.Hex.parse('00000000000000000000000000000000'),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
logInfo("-- " + decrypt.toString(CryptoJS.enc.Utf8) + " --")
recipientMongoId = _decrypted.lid;
recipientSalt = _decrypted.salt;
gridCode = variables.gridCode;
gridVersion = variables.gridVersion;
deliveryCode = variables.deliveryCode;
} else {
// Get deliveryCode from delivery template
deliveryCode = delivery.deliveryCode;
// Get lead mongoId & salt
recipientMongoId = recipient.mongoId;
recipientSalt = recipient.salt;
// For loyalty products, the gridCode has been moved into gridVersion and the gridCode is the lead score
gridVersion = variables.gridVersion;
gridCode = recipient.scoring;
if (variables.gridCode && variables.gridCode != '') {
gridCode = variables.gridCode;
}
// For AC/PM mailing: Concatenate gridVersion from previous cart (MD) with an eventually existing gridVersion stored into the delivery template
// Get also cart mongoId from previous cart (MD) in order to link carts for stats
// Be careful, alias must be "orderHistory" in enrichment
try {
// For normal strat, gridVersion stored in targetData (data stored in working tables of workflows)
if (targetData.gridVersion && targetData.gridVersion != '') {
gridVersion = targetData.gridVersion;
}
if (targetData.gridCode && targetData.gridCode != '') {
gridCode = targetData.gridCode;
}
if (targetData.dateX && targetData.dateX != '') {
dateX = targetData.dateX;
}
if (targetData.orderHistory) {
if (targetData.orderHistory.gridVersion && targetData.orderHistory.gridVersion != '') {
gridVersion = targetData.orderHistory.gridVersion + gridVersion;
}
if (targetData.orderHistory.mongoOrderId && targetData.orderHistory.mongoOrderId != '') {
parentCartId = targetData.orderHistory.mongoOrderId;
}
if (targetData.orderHistory.gridCode && targetData.orderHistory.gridCode != '') {
gridCode = targetData.orderHistory.gridCode;
}
}
}
catch (e) {
}
}
//var ivString = randomString(IV_SIZE)
var iv = ivString.hexEncode();//'11be5d01690fb6f9';
var data = {
lid: recipientMongoId,
salt: recipientSalt,
data: {
channel: {
"name" : "EMAIL",
"source" : {
"type" : "ADOBE_CAMPAIGN",
"detail" : variables.detail
}
},
dropCode: deliveryCode,
gridCode: gridCode,
gridVersion: gridVersion
}
};
if (parentCartId && parentCartId != '') data.data.parentCartId = parentCartId;
if (dateX && dateX != '') data.data.date = dateX;
var toEncrypt = JSON.stringify(data);
var encrypted = '?k=' + ivString + cryptString(toEncrypt,key,'CBC',iv).replace(/\//g,'_').replace(/\+/g,'-').replace(/=+$/, '');
%>
When I try to sent an email I get an error that recipient and recipient.OrderHistory are undefined not defined.

Anyone can help here? What I am doing wrong?
Thanks in advance.