Authorize.Net выбрасывает сообщение "User authentication failed due to invalid authentication values", но в песочнице работает. Все учетные данные проверены как правильные

Я проверил его на действительность карты, а также несколько раз пересоздавал ключи транзакций, но это бесполезно. Я проверил все форумы по этому поводу. Я получил ошибку кода 007, который гласит Опубликование API Login ID и ключа транзакции реального счета в тестовой среде по адресу https://apitest.authorize.net/xml/v1/request.api. Для реальных учетных записей, пожалуйста, отправьте их на https://api.authorize.net/xml/v1/request.api вместо этого. Размещение идентификатора входа в систему API и ключа транзакции тестового аккаунта в реальной среде по адресу https://api.authorize.net/xml/v1/request.api. Для тестовых учетных записей отправляйте информацию по адресу https://apitest.authorize.net/xml/v1/request.api. В API Login ID или Transaction Key имеются ошибки. Я уверен, что все мои учетные данные верны, я проверил их 100 раз.

сначала я создаю платежный профиль клиента, если он еще не существует

    def create_customer_profile(cls, user: User, merchant_auth):

        if not user.customer_profile_id:
            customer_data = {
                "merchantCustomerId": str(user.id),
                "email": user.email,
            }
            create_customer_profile = apicontractsv1.createCustomerProfileRequest()
            create_customer_profile.merchantAuthentication = merchant_auth
            create_customer_profile.profile = apicontractsv1.customerProfileType(
                **customer_data
            )

            controller = createCustomerProfileController(create_customer_profile)
            controller.execute()
            response = controller.getresponse()
            if response.messages.resultCode == "Ok":
                user.customer_profile_id = response.customerProfileId
                user.save()
                return response.customerProfileId
            else:
                raise TransactionCanceled(
                    message=str(response.messages.message[0]["text"].text)
                )
        return user.customer_profile_id

после этого я пытаюсь создать платежный профиль клиента со всеми данными кредитной карты и биллинга

@classmethod
    def create_customer_payment_profile(
        cls, card_details, billing_address, user: User, default: bool
    ):
        merchant_auth = cls.merchant_auth()
        payment = apicontractsv1.paymentType()
        credit_card = apicontractsv1.creditCardType()
        credit_card.cardNumber = card_details["card_number"]
        credit_card.expirationDate = card_details["mm_yy"]
        credit_card.cardCode = card_details["cvv"]
        payment.creditCard = credit_card

        profile = apicontractsv1.customerPaymentProfileType()
        profile.payment = payment
        profile.billTo = apicontractsv1.customerAddressType()
        profile.billTo.address = billing_address["address_1"]
        profile.billTo.city = billing_address["city"]
        profile.billTo.state = billing_address["state"]
        profile.billTo.zip = billing_address["postal_code"]
        create_payment_profile_request = (
            apicontractsv1.createCustomerPaymentProfileRequest()
        )
        create_payment_profile_request.merchantAuthentication = merchant_auth
        create_payment_profile_request.paymentProfile = profile

        create_payment_profile_request.customerProfileId = str(
            cls.create_customer_profile(user, merchant_auth)
        )
        create_payment_profile_request.defaultPaymentProfile = default
        controller = createCustomerPaymentProfileController(
            create_payment_profile_request
        )

        controller.execute()
        response = controller.getresponse()
        return response.customerPaymentProfileId

Тело как?

{
  "payment_method": {
    "card_holder": "name surname",
    "card_number": "valid card numbers",
    "mm_yy": "valid exp",
    "cvv": "valid cvv"
  },
  "billing_address": {
    "address_1": "valid adr1",
    "city": "valid City",
    "state": "valdi state",
    "postal_code": "valid postal_code"
  }
}
Вернуться на верх