.NET Core with PayTrace (Mime Type Fix)

This year I am re-writing my previous payment solution (from PHP to .NET) and first on the project list is credit cards.  We are using PayTrace and their client-side encryption as to not have to worry about PCI Compliance.

I’m to the point where I have a Pre-Payment model with all the fields needed to send via JSON.  I also have a method to request a token for sending (uses demo username and pass) and a test PEM file I downloaded from the PayTrace site.  I also got the webpage scanning credit cards, and I hit submit and.. I get this:

XML Parsing Error: no element found

This is appearing in the console of Inspector in Firefox.  Turns out this a generic error Firefox throws out when it’s expending a file but gets nothing.

My path’s are correct, but the “public_key.pem” file is not attaching to my post.   The problem?  MIME-type.

Continue Reading

PHP/Curl SSL Certificate Error with Payeezy

As I work toward syncing our as400 to our payment gateway, I’ve encountered an error both in PayTrace and Payeezy sample codes, generally when making a JSON post with Curl in PHP.

The error:

ssl certificate problem: self signed certificate in certificate chain

Almost ALL documentation / research on this suggests you turn off Curl verification (CURLOPT_SSL_VERIFYPEER off)  and yes, it works, but it’s just not an option when I’m trying to secure my server for payment transactions.

Continue Reading

PayTrace Client Side Encryption (PHP / IIS)

This is a quick for-developers-only guide of how to get your PHP/JS code (Windows) talking to PayTrace’s API.  I chose the Client Side Encryption as being our first time out, I wanted the least amount of strictness in PCI compliance.   This guide assumes you know PHP, JS, JQuery, a little of what an API does, enough to paste some JSON together and of course your HTML, CSS, etc.   You’re a developer, you have all the code provided open source, but this is a quick A-B-C of what code I used and how I got it working on Windows (IIS7) and hurdles I ran into.

All code here is readily available on GitHub, but if you’d like my version of it, download it on my Gist.

Continue Reading