Использование GooglePay с CyberSource Gateway

В настоящее время я использую клиент REST PHP Simple Order Api https://github.com/CyberSource/cybersource-rest-client-php

Оба руководства для разработчиков найдены на

Опишите так же способ форматирования данных, полученных через Google Pay. Однако они описывают разные способы форматирования запроса.

1) Set the encryptedPayment_data field to the value of the
encryptedMessage field that was returned in the Full Wallet 
response.

2) Set the paymentSolution field to 012. 

а также

2) In the authorization request under the paymentInformation 
object, set the key field under the fluidData object to the 
Base64-encoded value obtained from the Google Pay blob.

3) Under the processingInformation object, set the 
paymentSolution field to 012.

Я использую способ fluidData, так как мне не удалось найти ссылку на ссылку на поле encryptedPayment. в API простого заказа, но он не работает.

Запрос

{
    "clientReferenceInformation": {
        "code": "testcode"
    },
    "processingInformation": {
        "paymentSolution": "012"
    },
    "paymentInformation": {
        "fluidData": {
            "key":"<Google Pay Blob>"
        }
    },
    "orderInformation": {
        "amountDetails": {
            "totalAmount": "100.00",
            "currency": "USD"
        },
        "billTo": {
            "firstName": "John",
            "lastName": "Doe",
            "company": "ABC Company",
            "address1": "1 Market St",
            "locality": "san francisco",
            "administrativeArea": "CA",
            "postalCode": "94105",
            "country": "US",
            "email": "[email protected]",
            "phoneNumber": "4158880000"
        }
    }
}

Ответ

[body] => stdClass Object
        (
            [submitTimeUtc] => 2019-04-10T16:05:39Z
            [status] => INVALID_REQUEST
            [reason] => MISSING_FIELD
            [message] => Declined - The request is missing one or more fields
            [details] => Array
                (
                    [0] => stdClass Object
                        (
                            [field] => recipientInformation.card.number
                            [reason] => MISSING_FIELD
                        )

                )

        )

    [message] => [400] Error connecting to the API (https://apitest.cybersource.com/pts/v2/payments/)

person Carlos Arturo Alaniz    schedule 10.04.2019    source источник
comment
ты понял это?   -  person Tzvetlin Velev    schedule 15.10.2019
comment
@TzvetlinVelev Кто-нибудь из вас нашел исправление?   -  person praneybehl    schedule 11.03.2020


Ответы (1)


Необходимо указать значение paymentInformation- ›fluidData-›, а не ключ. Должно выглядеть примерно так:

    "paymentInformation": {
      "fluidData": {
        "value": "eyJzaWduYXR1cmUiOiJNRVlDSVFEOWNseWVWaDdjQ1FQNjhSYjVDYjNYREF1aEZxZzJDcVAxZmxuL0lHQmJ2Z0loQU1oM3YxYlZoRUVwQjFJdThib2VmN01POE1TR1Q0Ni9CenRUcUVTMmpiYysiLCJwcm90b2NvbFZlcnNpb24iOiJFQ3YxIiwic2lnbmVkTWVzc2FnZSI6IntcImVuY3J5cHRlZE1lc3NhZ2VcIjpcIkg2YzFVcUNsQnNVRkFNUGd4aVp3M3V5aFgyaVpEQnlIWWU2NSs3Mnh2MTh4OWZUczZFd1lEc3FNTHNiMnh6aUpqRlZ4Vm1kcXBWTWVSSCtJbTI4WU9PQXcxY05USjBucko3YVdFSlQxY2xZYm4vZy9JS1FWb3Y2Q3FpYzlrTzJGcVpyMWhMWVZmU255ZnhjdXVkNHBvSWgvb0daQXBCMzZOWDBvSktWeG93LzlaR2lKSXBaR3o1VXByYm9pMVl0VlpvOVJiN1NsL3RPTEJyRm5XU2hXem1sbi96V3hobU5hcEN0REVpM005MWtuU2ZhMWg0NVordG0ybWZuVzJub1oxM1pNMURsaGg3UHpmKzZqZ1grK09qbVpLS01nMEk1bEZBcnhReGFLckw5bmRCNmkxTTZ0MjAzTVNhSlRmbjFjY1pXaEF0K3Vlb2EzbVQxdWVveURUL09OaUU5a0dub1dpYjJINjRoNlIvM0oxaHJBdVlpY0p6NTNGcjkvZ09iUTFBT0huclNMTHNuTzJSUUVORmdzTXA5Ri8wOWIycC91NDRBOGt6TE1HT2svdGZPVURXL2V3c1JRcVZzaFEyY1plSjRcXHUwMDNkXCIsXCJlcGhlbWVyYWxQdWJsaWNLZXlcIjpcIkJFQnpZRk13QjlOVjVJenlhZzFFMHBVMGZXK0hYbmxXVm5iN1JZWGVSLzR1K0tmUjJweVhoekJzSXVMOWsvTkNLZFNTOXRpSG1LUzZHUEdjZHozU3dnVVxcdTAwM2RcIixcInRhZ1wiOlwiYktUZVQrSVlBeUgwbWw3VEJuaXpGQVpCa2l0Q2dKS09uTStqOTI3enhWb1xcdTAwM2RcIn0ifQ=="
      }
    },

Кстати, REST API и Simple Order API - это два разных API с разными именами полей. API простого заказа - это SOAP.

person pkbevans    schedule 12.01.2021