django-payments
django-payments copied to clipboard
Cybersource: with capture true process data returns error xid is missing
After 3D-Secure window call back come for process data and after making final call receiving following response.
{
merchantReferenceCode = "some id"
requestID = "some id"
decision = "REJECT"
reasonCode = 101
missingField[] =
"c:xid",
requestToken = "some toke"
ccCreditReply =
(CCCreditReply){
reasonCode = 101
}
payerAuthValidateReply =
(PayerAuthValidateReply){
reasonCode = 100
authenticationResult = "0"
authenticationStatusMessage = "Success"
cavv = "some id "
cavvAlgorithm = "2"
commerceIndicator = "vbv"
eci = "05"
eciRaw = "05"
xid = "d1BMazdJalhJV0l6d2NVOHajA="
paresStatus = "Y"
}
}
Which payment gateway is that?
Cybersource Soap tool kit api
.
These are request params.
ccCreditService': (CCCreditService){
captureRequestID = None
reconciliationID = None
partialPaymentID = None
purchasingLevel = None
industryDatatype = None
commerceIndicator = None
billPayment = None
authorizationXID = "RE05V3ZqZGtBWDVSbjQ4enZLMzA="
occurrenceNumber = None
authCode = None
captureRequestToken = None
merchantReceiptNumber = None
checksumKey = None
aggregatorID = None
aggregatorName = None
_run = "true"
In 3D-Secure call back it is going into CCCreditService.
def _prepare_payer_auth_validation_check(self, payment, card_data,
pa_response):
check_service = self.client.factory.create(
'data:PayerAuthValidateService')
check_service._run = 'true'
check_service.signedPARes = pa_response
params = self._get_params_for_new_payment(payment)
params['payerAuthValidateService'] = check_service
if payment.attrs.capture:
logger.info('in CCCreditService')
service = self.client.factory.create('data:CCCreditService')
service.authorizationXID = payment.attrs.xid
service._run = 'true'
params['ccCreditService'] = service
The authorizationXID
looks ok, I'm not sure which field (c:xid
) it complains about, will need to consult Cybersource documentation.
Did not find any useful information on the Cybersource.