Forum Moderators: buckworks

Message Too Old, No Replies

Subscription / PCI Compliance Best Practice

         

nicu

3:50 am on Sep 22, 2009 (gmt 0)

10+ Year Member



I am working on a project that requires the site to charge their customers at the end of the month, at a price that is determined by their usage during that month. For example, during Month 1, Customer A might get charged $5, while Customer B might get charged $200. During Month 2, Customer A might get charged $75, while Customer B might get charged $50.

I have spent many hours researching the ways to approach this problem, but I still don't know what's best. Initially I thought I would use Web Payments Pro (PayPal). A customer could enter their CC info once, and a script can be run each month to charge the appropriate amount. However, since the CC numbers would be stored in this site's database, this technique poses PCI Compliance issues. From what I have read, achieving PCI Compliance is both very time consuming and very costly (for example, a shared hosting account is not considered compliant - is it?)

In a nutshell, I need the flexibility of charging each card variable amounts each month, without the liability of storing the CC numbers. Does PayPal offer such a service? If so, such a solution could be acceptable, but would pose another issue- I have heard horror stories about PayPal terminating merchant accounts with little explanation or recourse. Should that happen, and the site is forced to switch to another merchant (ie, Authorize.net), all CC data would be lost and users would have to resubmit it (right?) - which would certainly be a burden on this site's members.

Any insight would be greatly appreciated. What is the best way to approach this task?

Jack_Hughes

9:06 am on Sep 22, 2009 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



WorldPay have a monthly payment system... not sure if you can vary the amounts though.

nicu

8:37 pm on Sep 22, 2009 (gmt 0)

10+ Year Member



I was hoping to stick with PayPal, due to the relative ease of implementation and the wealth of documentation/code samples/help already available. I'm just unclear as to "just how PCI compliant" I would have to be in order to transmit CC data to them. For instance, if I didn't actually store the CC data, just transmitted it, would the site have to be "as compliant" as if I were going to store the CC data, say, in a local database?

Authorize.net is the other one I was considering. Anyone have advice on either? They are looking to implement ASAP, so speed is another big factor.

Jack_Hughes

4:06 pm on Sep 23, 2009 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



If you don't store the CC data how can you transmit the data each month to PayPal? If you've got the form on your site that accepts credit cards then you've got to be PCI DSS compliant whether you store the data or not. With WorldPay they do the heavy lifting for you so you don't need to be PCI DSS compliant.

rocknbil

5:26 pm on Sep 23, 2009 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



If you don't store the CC data how can you transmit the data each month to PayPal?

In most subscription systems, a unique ID is provided for the original transaction/purchase and this is what's stored on your server. You can a) allow the gateway (payPal) completely manage the sub (in which case the unique ID is just for reference) or b) by cron job/silent post, push out the auto debit using the unique identifier as the "handle" on the account. The merchant gateway stores the CC info and processes the transaction.

With many merchant gateways, the second method allows you to post an amount that varies. Example, "your subscription fee never changes" so you store the initial fee in the client's data, and use that to renew the subscription, regardless of rate changes that come later.

I know that payPal supports subscriptions, but don't know if it supports method B or variable renewals, you'd have to dig through their documentation.

if I didn't actually store the CC data, just transmitted it, would the site have to be "as compliant" as if I were going to store the CC data, say, in a local database?

Perl your other thread, there are various levels of compliance. A site storing CC info now has the added checks of how the data is encrypted, and also requires a review of the physical hardware access as well as the security of the entire network on which the server resides. Definitely a different level.

nicu

7:42 pm on Sep 23, 2009 (gmt 0)

10+ Year Member



I don't think PayPal supports subscriptions of variable renewals, but couldn't one use the Reference ID (after the initial charge/authorization) to fill the request for the appropriate amount each month, without using their subscription feature at all? I believe that reference ID is kept on file for 1 year.

foghead

2:28 am on Sep 25, 2009 (gmt 0)

10+ Year Member



I think your problem with PayPal Pro would be that as far as I know they require the CVV code must be passed with every transaction. That's OK first time around, but as you of course cannot store that value you won't be able to post recurring transactions.

They do have a subscription system but it's based around PayPal Standard and pretty quirky in my experience.

If you're in the US I'd follow the authorize.net path and if you want to avoid the PCI compliance burden then check out their CIM system where they store the sensitive data and you just post an identifier to initiate a charge.