We migrated a client to Pantheon hosting a couple months ago. The site’s ubercart payments worked consistently on the old hosting platform, but have only worked sporadically on pantheon and I’m trying to resolve the issue. It seems that the only payments that go through are ones made immediately after Drupal’s caches have been flushed.
I believe the problem is due to the credit card encryption: while I can set a directory in ubercart’s “Encryption key directory” field and I can see that the key does get generated, most payment transactions fail.
Ubercart wants you to store this key outside your doc root or in sites/default/files/private. I think this probably works perfectly on a normal hosting platform, but on Pantheon, the structure is different with sites/default/files/private not within the site's doc root.
I have read both of these pantheon guides: https://pantheon.io/docs/guides/lockr/ and https://pantheon.io/docs/private-paths/. Based on this info, I have installed the Drupal Key, Encrypt and Lockr modules and have enabled them.
In the Key module admin UI, I was able to signup for a Lockr account and add an encryption key of type Lockr encryption.
But now I don’t know how to make ubercart use this Lockr key. In Ubercart’s payment settings, under “Encryption key directory” it expects/requires a path to the key: what would this be for a Lockr key?
In the README for the Key module under the section "Using Keys" it seems to indicate I will have to write a custom module to make the Lockr key appear as a selectable option in the ubercart key directory settings. But I worry this may be beyond my abilities or consume vast amounts of time to figure out.
Is there an easy way to make ubercart use a Lockr key? Or has anyone written a custom module for this they'd be willing to share?