Кодировать строку в base64 в Shopify - PullRequest
0 голосов
/ 25 января 2019

Как я могу закодировать строку для базы 64 в Shopify?

Мне нужно зашифровать в base64 адрес электронной почты покупателя ({{customer.email}}) и заказ ({{order_name}})

Область действия для добавления кнопки доверенного сообщения * .de в электронное письмо, и они запрашивают формат следующего URL:

www . trustedshops/buyerrating/rate_XFD9974BBC558C007CD46
431D056DF230.html&buyerEmail="[base64 buyerEmail]: "&
shopOrderID=" [base64 Order] "&channel=cmF0ZW5vd2J1dHRvbg"

Есть ли способ преобразовать эти два значения в base64?

Спасибо за ваше время!

1 Ответ

0 голосов
/ 25 января 2019

Base64 - это , а не шифрование - оно называется кодировкой.

Мне не известно о существующем жидкостном фильтре для base64, поэтому вам придется делать это в javascript.

Жидкость: HTML:

    <a href="#" onclick="window.open('https://www.trustedshops/buyerrating/rate_XFD9974BBC558C007CD46431D056DF230.html&buyerEmail=' + encodeURIComponent(btoa({{ order.email | json }})) + '&shopOrderID=' + encodeURIComponent(btoa('{{ order.order_number }}')) + '&channel=cmF0ZW5vd2J1dHRvbg')">
        Open order on trustedshops.com
    </a>

И этот код просто объясняет JavaScript в этом onclick .

Javascript:

    // The btoa function is the javascript function to encode a string as base64
    // Since base64 encoded strings can't go directly in a url, we then 
    // need to use encodeURIComponent to make it ok to use in a url.
    var encodedEmail = encodeURIComponent(btoa('hello@example.com')); // aGVsbG9AZXhhbXBsZS5jb20%3D
    var encodedOrderId = encodeURIComponent(btoa('1234567890')); // MTIzNDU2Nzg5MA%3D%3D
    // we can now construct the full url
    var url = 'https://www.trustedshops/buyerrating/rate_XFD9974BBC558C007CD46431D056DF230.html&buyerEmail=' + encodedEmail + '&shopOrderID=' + encodedOrderId + '&channel=cmF0ZW5vd2J1dHRvbg';
    // use window.open to open the url in a new tab
    window.open(url);
    // or use window.location.href = url if you'd like it 
    // to be the same tab
...