📜 ⬆️ ⬇️

e-Ticket misunderstanding

Hello!
More and more passengers use electronic tickets - this is a fact. And many of them consist in various bonus programs and try to accumulate miles both on the ground and in the air. It's cool. To increase the number of these miles, they even issue specialized bank cards, by paying with which you increase this balance. An interesting feature was found on the website of one carrier. Let's take a look!

Prehistory
I bought tickets through the online service several times. Nothing unusual at this time, except that I was distracted several times. I entered my real data, clicked "Continue" and it turned out that I was mistaken in one letter in the last name (the key was stuck).
image
image
At the same time very interesting facts came to light. I formulated the same mistake with data invented from my head.
Check
So, we are practically on the road to success and have filled in all the necessary data fields:
image
All data was entered randomly, except for my real bonus card number, which I used when this error first appeared.
As you can see, no validation by card number and full name is performed, the page informs us that everything is “ok”.
This means that such a bonus card number does exist, and this is true.
We press further ... and the error, actually the same, which I received when I made a mistake with my last name:
image
Unauthorized use of the card , oh how. Well, everything is correct, a fictional comrade cannot have a card with a number that is attached to me (as an individual), as well as myself with the wrong last name. For the sake of fairness, it’s worth noting such a banner on the page: “ Attention! If you specify a universal card or a“ RZD-Bonus ”card, make sure that the last name, first name and patronymic are the same as when registering the card. then it is mandatory to fill in on this page. "The warning is excellent, but apparently no one is immune from random errors. Why not use additional verification mechanisms?
But let's review the whole text of the error:
Passenger{id='0', lastName='', firstName='', middleName='', tariffType=, dateOfBirth=Wed Feb 07 00:00:00 MSK 1996, documentType=DocType{id=1, code='', name=' }, documentNumber='1222567890', citizenship=Country{expressCode=**, isoAlpha3='RUS', isForcedRegistrationAllowed=true, localizedNames='{en={name=Russian Federation}, ru={name=}}'}, gender=Male, universalCardNumber='null', loyaltyCardNumber='*********************', birthplace='', insuranceCompany='null', babyPassenger='null'}, order=OrderBean{id=, saleOrderId=null, departureStationId=2000003, arrivalStationId=2024000, srcStation=' ', dstStation='', distance=null, departureTrain=Train{typeId='2', expressCategoryId='1', date=12.03.2015 20:08:00.000, trainDepartureDate=null, comments=null, isOnboardRegistrationAvailable=false, brand=null, departureStationShortName=' ', arrivalStationShortName=''}, arrivalTrain=Train{typeId='null', expressCategoryId='null', date=09.03.2015, trainDepartureDate=null, comments=null, isOnboardRegistrationAvailable=false, brand=null, departureStationShortName='null', arrivalStationShortName='null'}, carrierId=1, carriage=ru.tehnosk.chameleon.layer.express.bean.response.buyTicket.Carriage{number='03', owner={type='', railway=null}, addSigns='1', serviceClass=1, isOnboardRegistrationAvailable=false, tripClass=null} SUPER:AbstractCarriage{type=, number='03', carCarrierGroup=CarCarrierGroup{id='1' name='', isFoodChoiceAvailable=true, foodChoiceStopHours=48}, carCarrier=Carrier{name=' ', id=200, isForcedRegistrationAllowed=true, carCarrierGroup=CarCarrierGroup{id='1' name='', isFoodChoiceAvailable=true, foodChoiceStopHours=48}, isNotForSale=false, locale2fieldName2value={ru={name= }, en={name= }}}, serviceClass='1', addSigns='1', foodAvailabilityFlag=true}, tariff=ru.tehnosk.chameleon.layer.express.bean.response.buyTicket.Tariff{type='null'} {cost='7304.0'}, totalCostInEuro=null, totalCostInPoints=null, totalInsuranceCost=0, tickets=[TicketBean{id=128532684, orderId=119344058, ordinal=1, number='71751387597061', reservationNumber=null, passCount=1, seats='010', seatsType='', tariffType=, tariffInfo='null', tariffB=3636.6, tariffP=3667.4, tariffBP=7304.0, tariffInsurance=0.0, tariffService=0.0, tariffNDS=1114.17, price=7304.0, priceInEuro=null, priceInPoints=null, priceInPointsMoney=null, status=, code2D='null', registrationChangeDate=null, containsDet5=false, refundTariff=null, refundDate=null, refundInfo='null', refundKrs=null, trainmasterLogin='null', 

LoyaltyCardNumber = '**********************' is my card number. The rest is official and geographical information with identifiers. Anything higher corresponds to the information entered. But as always there are pitfalls ...
This piece is of particular interest:
* /
passengers = [en.tehnosk.chameleon.layer.express.bean.PassengerBean { id = **********, index = null, middleName = '************* ICH ', firstName =' ********* N ', lastName =' **** E ****** ', tariffType = null, dateOfBirth = **. **. 19 ** 00 : 00: 00.000, documentType = DocType {id = 1, code = 'Mon', name = 'RF Passport}, documentNumber =' 1222567890 ', citizenship = Country {expressCode = 20, isoAlpha3 =' RUS ', isForcedRegistrationAllowed = true, localizedNames = '{ru = {name = Russia}, en = {name = Russian Federation}}'}, gender = Male, cardNumber = 'null', loyaltyCardNumber = 'null', isFullComp = false, insurance = null}], foodChoice = {}}]
* /
Here I found my legitimate name and date of birth ... Well at least the passport data left invented. By the way, here the bonus card parameter is: loyaltyCardNumber = 'null' . It turns out quite sad story, well, if you have a key stick, and if not?
Error text further:
 refundedTicketFromReissuedOrder=null, expiredDate=null, orderNumber='', dbRecordCreateDate=null, createDate=09.03.2015 , status=null, statusChangeDate=null, payGateData=ru.tehnosk.chameleon.layer.express.bean.response.buyTicket.PayGateData{payGateOrderId='null', payGateSessionId='null'}, ticketQuantity=1, passengerQuantity=null, seatQuantity=1, paymentForm='null', agentId='1', subagentId='null', seatNumbers='010', timeInfo=' .;     ; ', attrs='null', terminalNumber='', issueRailway='null', issueCc='null', compCc='null', posNumber='null', login='null', isInternational=false, isCisInternational=false, e3gwNegativeResult=null, directionType=Forward, isRegistrationAvailable=true, isInactive=false, isTeema=false, isAutorackAvailable=false, hasAutorackOrder=false, isDeferredPayment=false, deferredPaymentDeadline=null, isEntireCompartment=false, availableFoodTypes=[], refundedTicketId=null, relatedOrderId=null, ferry=false, busFlag=false, autoRequest=null} 

I hope they will fix this functionality as soon as possible, because message to the Railways was sent.
PS And here is the prompt response:
image
The answer, of course, is entertaining. I agree that the bonus card is individual, but this does not correlate with the fact that the system of buying tickets (the relationship between the data in the bonus program and the data entered in the form) is incorrect. I want to note that I entered my bonus card number exclusively. Maybe my card is unique?
Pps
Another week passed, another request was written, because The situation has not changed. Another response from Russian Railways:
image
It turns out that no one is responsible for anything, you buy on the site of the Russian Railways, and the bonus program is generally the third ...
You can certainly calm down and not use electronic services, because:
image and image
Honestly, I don’t have much to download the policy and study it after reading 2 lines about the general availability of PD.
So all organizations can do? A little thought for thought .
I hope the information will be useful.

')

Source: https://habr.com/ru/post/252779/


All Articles