globalpayments / python-sdk

GNU General Public License v2.0
23 stars 17 forks source link

The `CreditCardData.short_expiry` property returns the wrong value #3

Open anthonyjb opened 5 years ago

anthonyjb commented 5 years ago

Currently the example of how to set the expiry date for a card is shown as:

card.exp_month = '01'
card.exp_year = '2019'

However, the <expdate> tag with the request sent to the API is being incorrectly set, so for the example above the <expdate> would be set to 2020.

The reason for this is the short_code property against the CreditCardData class:

    @property
    def short_expiry(self):
        '''
        The card's expiration date in `MMYY` format.
        '''

        month = str(self.exp_month).zfill(2)
        year = str(self.exp_year).zfill(4)[:2]

        return '{}{}'.format(month, year)

The year assignment selects the first 2 digits of the year not the last 2, it needs to be:

year = str(self.exp_year).zfill(4)[2:]
slogsdon commented 5 years ago

@anthonyjb Apologies for the delay, and thanks for the report! We'll work on getting this fixed within the SDK.