Server (inframe) integration - hide fields and external fonts - opayo

I'm wondering if it is possible to create a real GOOD LOOKING server integration experience without any personal input fields showing up when user is forwarded to SagePay to capture card details.
In our application we have a smooth wizard-like process where we capture personal information such as name/delivery address and reviewing the order before paying. When the user is forwarded to SagePay all the information is repeated once again (editable) which just looks awful! :(
According to your docs all fields must be included in the forms.
Question1: Is it OK to render hidden fields such as:
<input type="hidden" name="cardfirstnames">
<xsl:attribute name="value">
<xsl:if test="$transactiontypeid != 15">
<xsl:value-of select="payment-model/transaction/billingfirstnames"/>
</xsl:if>
</xsl:attribute>
</input>
Question2: According to docs it's not allowed to load external images. We are using external fonts from Google Fonts. Is there any possibility to load them?
BR
Niclas

You could use one of the other template types that are already available - using the Responsive or DefaultNoAddr templates would solve this issue. Alternatively, you can just remove them from the xslt
Fonts need to be hosted by Sage Pay. Nothing external is permitted on the payment pages.

Related

Mailchimp email not automatically downloading images in Outlook

I have a mailchimp email that contains quite a few images however do not load automatically in the outlook inbox.
I was wondering if there was a way of automatically loading the images to the email recipients that use outlook.
So far I have investigated that recipients could change their settings by altering the trust center settings as shown here. But as the only comment on that article states that there are problems with Mailchimp.
I have also come across a similar problem. However, not sure where to find my images Cid or not even sure whether this is a viable option.
Below is an image of the problem.
Edit (27/10/17):
The mailchimp images look like this:
https://gallery.mailchimp.com/608ee8ffcd21cef122eb0e6d9/images/765fb2c2-7075-4964-b831-ba5a6d0bc7cd.png
The img is written like this:
<img align="center" alt="" src="https://gallery.mailchimp.com/608ee8ffcd21cef122eb0e6d9/images/765fb2c2-7075-4964-b831-ba5a6d0bc7cd.png" width="564" style="max-width: 1000px;padding-bottom: 0;display: inline !important;vertical-align: bottom;border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;" class="mcnImage">
We've added domain authentication and verification and it hasn't resolved the issue; anyone using Outlook has to 'Mark as Safe' EVERY SINGLE TIME.
Interestingly we receive emails from a rival using Oracle/Bronto email software and this doesn't occur.
Problem is MailChimp is great apart from this one annoying issue.
We're having the same issue. I was under the impression that this can be resolved by authentication.
https://kb.mailchimp.com/accounts/email-authentication/about-email-authentication
I'm hoping we can convince the guys who manage to DNS server to add this.

How can we choose most recent Paypal Payment page?

I'm setting up a Paypal Account for a client. Its a little organization, so they choose the free Business Account to collect payments. For the moment, they can't afford the Pro version.
I want to know : how use the most recent interface for payments ?
This is the interface I want :
Instead of the ugly "old" one :
I search in the Paypal website but I have no clues. I want to use the newer version because the button for non-Paypal user is really much more user-friendly and don't force people to create Paypal Account to pay.
Edit : I also need to use the IPN system to send data bak to my website.
I spent a while searching for this as well. In the code for your button replace the form as follows:
Before:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
After:
<form action="https://www.paypal.com/donate/?token=" method="post" target="_top">
Try also adding this snippet as one of the inputs for the form if the prior doesn't work. I read this part on another post in SO, but I forgot the link:
<input type="hidden" name="force_sa" value="false">
For your curiosity and future debugging:
I found this solution because the old interface would appear in chrome during normal mode, but the new interface would appear in chrome incognito/private mode. I tried using chrome dev tools but I merely noticed the URL differences and replaced it accordingly in my code.
Hope that helps!

Hotmail.com strips out formatting and hyperlinks from HTML message

I'm struggling to figure out how to defeat this process on Hotmail.com.
When I send an e-mail using a PHP script (and PHPMailer libraries, using Sendmail), recipient viewing the message from Hotmail.com gets a very bare message. Images are there, but all of the HTML formatting (styles, attributes, hyperlinks) is stripped away. Not even the <td> attributes remain (such as colspan, cellpadding, etc).
However, when I send the exact same message directly from a regular mail client (or webmail interface), all formatting and styling is preserved intact.
My PHP script sends a customised HTML message to a group of recipients, but it does it one by one (customising parts of the message for each recipient).
It appears that Hotmail doesn't seem to trust my server with the messages and is removing attributes and links as a security precaution. However, there is no way for receiving user to override this. Adding the sender to the whitelist does nothing. I have posted this on a Microsoft forum, without much success. I'm hoping someone here might have fought with the same problem and found a solution, or at least work-around.
I tried various things. I put a time delay of a few seconds between sending of two messages, thinking that Hotmail doesn't like mass mailing, and if two or more messages arrive from same sender at the same time, it will activate this blocking. It didn't help. I tried using SMTP script, sending the message through g-mail's SMTP server. Same problem -- stripped-out formatting.
[update]: I have even tried using Microsoft's own SMTP servers for hotmail, using a valid outlook.com user account to send (from that PHPMailer script). When viewed through hotmail.com web interface, the message is still stripped of all formatting and links.
Meanwhile, when these problem messages are viewed through a mail client (iOS, OSX, Windows, Android, MS Outlook), all is perfectly fine. [/update]
Right now, my work-around is pasting a long URL for this one important link that I want users to use, for recipients who have 'hotmail' or 'outlook' or 'live' in their e-mail address.
Any creative thoughts?
[update 2]After a lot of tinkering, I was able to re-format the message so that at least some of the formatting is preserved, so now, I got <table> tags to work. What's weird is, <bgcolor> also works, but <center> doesn't, nor do any css style attributes (neither to <tr>, nor to <td> or <table> itself). Fortunately, I now have <a href> tags working properly, so the links are functional again. I have basically given up on the whole thing and have developed a separate bare-bones template only for hotmail/outlook recipients.
Frustrating![/update 2]
I'm not sure this is still an issue for you but since I didn't find ANY resources around that matter I thought it was useful to post it here.
I had the same problem and I figured it was that my links were dummies (only href="#") and that outlook stripped them (whereas gmail rewrites the href).
Apparently if there isn't a valid href tag, it strips the link, even if it's been used just for cosmetic.
I would advice not to use them for anything else than links (obviously).
Hope it'll help.

Programmatically adding products to a user's remote magento cart

I have a webpage where users can add products from 3rd party commerce sites (amazon, shopify, magento, etc) from my page. users select multiple products then click checkout, then the page redirects them to the checkout page in the 3rd party commerce site.
this works fine with Amazon as they have a server-side API that we proxy. Input: a bunch of products, output: a checkout URL. pretty simple and it works pretty well.
we're stuck with magento, however.
There is no public API for adding a product to a user's remote cart
The undocumented API only supports adding a single product at a time, so supporting multiple products requires multiple API calls (which is slow)
Most magento sites do not support HTTPS and/or redirect to HTTP all the time, and our site uses HTTPS. Thus, it doesn't really work.
We run into CORS issues when we try AJAX requests - we're currently hacking it with iframes.
The first request gives us a "no cookie" error page instead of actually adding it to the cart.
Is there a way to solve this? Does magento support CORS requests? What is magento's support with HTTPS?
I see http://community.magento.com/t5/Programming-Questions/API-Redirecting-user-to-magento-instance-to-view-their-cart/m-p/9113#M2029 which requires our client to install an extension, but that may not be acceptable
Although there's no API functionality in Magento supporting this out of the box, it is possible to extend Magento to support this by writing a small API module, to be installed in Magento for this to work. By creating an API extension, you can make the rules, accepting - for instance - multiple products to be added to basket.
Magento's documentation has always been quite poor, and normally developers like myself have to debug and step through the code, to understand how a particular feature is actually working. Once you become skilled enough, you start seeing a "bigger picture", which allows you to "predict" Magento behaviour and often allows you to skip step-by-step debugging investigation.
I would suggest that you get help from a professional developer, to build this (I would say at least 2-3 years of back-end development experience), and get a certified Magento developer to help you: amateurs can probably make a working solution for less, but you'd pay the consequences in a long term, not to mention portability of your module across Magento editions and versions, and security-related issues (XSS, SQL injection etc).
Magento supports HTTPS (really, that is up to the site's sysadmin, to configure the web server properly), and has a little of CORS support (by default, "same-origin" policy is implemented). Changing CORS would be a development task as well, even though I don't really see how this would be related to either REST or SOAP API.
Also, please note that Magento heavily relies on cookies for the session support (and basket is stored in database against a customer session).
This is all I can really say, that little information about your actual problem provided.
Should you need more info, I'd be happy to help, but I would need more details, in order to figure out the best solution.
Maybe you can try it with query string like this?
<?php
$formKey = Mage::getSingleton('core/session')->getFormKey();?>
<form action="/checkout/cart/add/product/<?php echo $productid; ?>" method="post">
<input type="hidden" name="form_key" value="<?php echo $formKey; ?>" />
<input type="text" name="qty"> QTY
<input type="submit" value="Add to basket" />
</form>

Passing credentials from Numara Footprints

I have a custom WebForms application that is utilized for our helpdesk that does some CRUD on a database of our satellite sites and their networking equipment.
I want to be able to integrate this with Numara Footprints, as we utilize it for our ticket tracking.
I have a template setup, and a working URL for a button control, but I need to know how to have my application detect a Footprints session and utilize the credentials.
I'm thinking that this is something that I'm going to need to ask Numara, but I figured I'd give you guys a shot first.
I have setup numerous web forms to interact with Numara Footprints (BMC). You will have to create a cgi script on your Numara server. Then you have to do is use that link as the Form Action in your HTML file.
Here's an example of one I have used:
form action="https://your-server.com/cgi-bin/your-service-desk/general/submit.pl" method="post
You can even use hidden fields to give you control of the redirects and timeouts of your redirects.
input type="hidden" name="redirecturl" value="http://www.your-server.com/new-form.html"
You can use a form element like this in your HTML:
input id="firstname" name="firstname" type="text"
I hope this helps.

Resources