class Mailgun::OptInHandler
def self.generate_hash(mailing_list, secret_app_id, recipient_address)
-
(String)
- A url encoded URL suffix hash.
Parameters:
-
recipient_address
(Hash
) -- The address of the user that should be subscribed. -
secret_app_id
(String
) -- A secret passphrase used as a constant for the hash. -
mailing_list
(String
) -- The mailing list the user should be subscribed to.
def self.generate_hash(mailing_list, secret_app_id, recipient_address) inner_payload = { 'l' => mailing_list, 'r' => recipient_address } inner_payload_encoded = Base64.encode64(JSON.generate(inner_payload)) sha1_digest = OpenSSL::Digest.new('sha1') digest = OpenSSL::HMAC.hexdigest(sha1_digest, secret_app_id, inner_payload_encoded) outer_payload = { 'h' => digest, 'p' => inner_payload_encoded } outer_payload_encoded = Base64.encode64(JSON.generate(outer_payload)) CGI.escape(outer_payload_encoded) end