I need to validate payment information during createCustomProfileRequest() call, to avoid of doing subseqent requests. In Request specification listed payment and paymentProfiles, but when I try to include one of them to sample code it just silently ignores it. Here is my code below. Please point me what I doing wrong? May be it is simply not realized for python? Thanks.
def create_customer_profile(): merchantAuth = apicontractsv1.merchantAuthenticationType() merchantAuth.name = constants.apiLoginId merchantAuth.transactionKey = constants.transactionKey createCustomerProfile = apicontractsv1.createCustomerProfileRequest() createCustomerProfile.merchantAuthentication = merchantAuth createCustomerProfile.profile = apicontractsv1.customerProfileType('jdoe' + str(random.randint(0, 10000)), 'John2 Doe', 'jdoe@mail.com') creditCard = apicontractsv1.creditCardType() creditCard.cardNumber = "4111111111111111" creditCard.expirationDate = "2020-12" payment = apicontractsv1.paymentType() payment.creditCard = creditCard createCustomerProfile.payment = payment controller = createCustomerProfileController(createCustomerProfile) controller.execute() response = controller.getresponse() if (response.messages.resultCode=="Ok"): print "Successfully created a customer profile with id: %s" % response.customerProfileId else: print "Failed to create customer payment profile %s" % response.messages.message[0].text return response if(os.path.basename(__file__) == sys.argv[0].split('/')[-1]): create_customer_profile()
03-31-2016 09:53 AM
I have found mistake, I did place my paymentProfiles to the root createCustomerProfileRequest class
but it needs to be placed to profile element of the root class. Here is working code:
def create_customer_profile(): merchantAuth = apicontractsv1.merchantAuthenticationType() merchantAuth.name = constants.apiLoginId merchantAuth.transactionKey = constants.transactionKey createCustomerProfile = apicontractsv1.createCustomerProfileRequest() createCustomerProfile.merchantAuthentication = merchantAuth createCustomerProfile.profile = apicontractsv1.customerProfileType('jdoe' + str(random.randint(0, 10000)), 'John2 Doe', 'jdoe@mail.com') creditCard = apicontractsv1.creditCardType() creditCard.cardNumber = "4111111111111111" creditCard.expirationDate = "2020-12" payment = apicontractsv1.paymentType() payment.creditCard = creditCard billTo = apicontractsv1.customerAddressType() billTo.firstName = "John" billTo.lastName = "Snow" profile = apicontractsv1.customerPaymentProfileType() profile.payment = payment profile.billTo = billTo createCustomerProfile.profile.paymentProfiles = [profile] controller = createCustomerProfileController(createCustomerProfile) controller.execute() response = controller.getresponse() if (response.messages.resultCode=="Ok"): print "Successfully created a customer profile with id: %s" % response.customerProfileId else: print "Failed to create customer payment profile %s" % response.messages.message[0].text return response
03-31-2016 11:26 AM