Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Payflow Gateway Reports "Invalid tender" on Reference Transaction #5

Open
JoeJasinski opened this issue Dec 8, 2011 · 2 comments
Open

Comments

@JoeJasinski
Copy link

Thank you for all the hard work on this API.

I noticed a slight issue when using the reference_transaction() method. The Payflow gateway would report back to me that I had submitted "Invalid Tender" and the transaction fails.

The payflow docs describe:
"Invalid tender type. Your merchant bank account does not support the following credit card type that
was submitted."

When I looked at the query parameters that python-payflow-pro was sending to the gateway, I noticed that what it was sending was different from what the docs suggested.

What python-payflow-pro sent to the gateway:

AMT[1]=4&CURRENCY[3]=USD&ORIGID[12]=*******&PARTNER[6]=PayPal&PWD[13]=********&TRXTYPE[1]=S&USER[12]=******&VENDOR[12]=*****

What the PayFlow Pro docs say should be sent:

TRXTYPE=A&TENDER=C&PWD=x1y2z3&PARTNER=PayPal&VENDOR=SuperMerchant&USER=SuperMerchant&ACCT=5555555555554444&EXPDATE=0308&AMT=100.00&INVNUM=123456789&STREET=5199 MAPLE&ZIP=94588

If you notice, the TENDER="C" parameter is missing from the python payflow-pro generated request.

I was able to force this parameter into the request using a Tender class with a "data" property. However, this feels a bit kludgy. Maybe I'm doing something wrong or using reference transactions incorrectly?

....

class Tender(): 
        """
        Force the tender into the parmas list sent to paypal
        """
        def __init__(self, *args, **kwargs):
            self.data =  {'TENDER':"C"}

        def __len__(self):
            return len(self.data)


 client.reference_transaction(
            transaction_type=transaction_type, original_pnref=original_pnref,
            amount=Amount(amt=amount, currency="USD"), extras=[Tender()])

Anyway, just bringing this up here in case it is an API issue.
Thanks for reading,
Joe

@bkeating
Copy link
Owner

Thanks for the report! I'll take a look into this over the coming week or so and report back.

@bkeating
Copy link
Owner

Not sure what to do here. Suggestions? I'll have to take a closer look but wanted to respond here since it's been awhile!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants