Документация по Partner API v2
Часто задаваемые вопросы по API
Важно! в приведенных примерах ниже используется только схема изменений запросов и обработки ответов без учета добавления нового функицонала из Partner API v2.
1. Необходимо изменить url для интеграции
https://udsgame.com/v1/partner
изменяется на
https://api.uds.app/partner/v2
2. Изменить авторизацию запросов.
Заголовок X-Api-Key заменяется на Basic auth. Для этого требуется установить значение токена в http-заголовок Authorization. Значение токена - идентификатор вашей компании (company id) и секретный ключ (API Key), закодированные с помощью base64. Создать или получить имеющийся API Key можно на странице Интеграция.
"X-Api-Key: api_key"
изменяется на
"Authorization: Basic Y29tcGFueV9pZDphcGlfa2V5"
(где Y29tcGFueV9pZDphcGlfa2V5-- это закодированная в Base64 строка company_id:api_key)
3. Изменить запрос получения настроек компании
GET 'https://udsgame.com/v1/partner/company' \
--header 'x-api-key: api_key'
изменяется на
GET 'https://api.uds.app/partner/v2/settings' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Y29tcGFueV9pZDphcGlfa2V5'
Изменить обработку ответа запроса настроек компании
"promoCode" -> остается "promoCode"
"baseDiscountPolicy" -> остается "baseDiscountPolicy"
"currency" -> остается "currency"
"id" -> остается "id"
"purchaseByPhone" -> остается "purchaseByPhone"
"marketingSettings" -> изменяется на "loyaltyProgramSettings"
"marketingSettings"."discountBase" -> изменяется на "baseMembershipTier"."rate"
"marketingSettings"."discountLevel1" -> изменяется на "referralCashbackRates"[0]
"marketingSettings"."discountLevel2" -> изменяется на "referralCashbackRates"[1]
"marketingSettings"."discountLevel3" -> изменяется на "referralCashbackRates"[2]
"marketingSettings"."maxScoresDiscount" -> изменяется на "baseMembershipTier"."maxScoresDiscount"
"name" -> остается "name"
4. Именить запрос поиска клиента
GET 'https://udsgame.com/v1/partner/customer?code=123456&customerId=null&phone=null&uid=null' \
--header 'x-api-key: api_key'
изменяется на
GET 'https://api.uds.app/partner/v2/customers/find?code=123456&phone=null&uid=null' \
--header 'Accept: application/json' \
--header 'Authorization: Basic Y29tcGFueV9pZDphcGlfa2V5'
Параметр customerId не поддерживается в Partner API v2
Для возможности оплаты счета с разным процентом списания бонусов в зависимости от статуса клиента необходимо добавить параметр total - изначальная сумма счета за вычетом сторонних скидок (без учета скидок UDS и списанных бонусных баллов).
Тогда в ответе поиска клиента в объекте purchase -> maxPoints вернется максимально допустимое количество баллов, которое может быть применено к этому чеку (зависит от параметра total)
GET 'https://api.uds.app/partner/v2/customers/find?code=123456&total=100' \
--header 'Accept: application/json' \
--header 'Authorization: Basic Y29tcGFueV9pZDphcGlfa2V5'
Изменить обработку ответа запроса поиска клиента
"level" -> не поддерживается. Можно понять статус клиента по полю "user"."participant"."membershipTier"."name"
"discountRate" -> изменяется на "user"."participant"."membershipTier"."rate"
"scores" -> изменяется на "user"."participant"."points"
"dateCreated" -> не поддерживается. Можно использовать дату вступления в компаниюю (при условия вступления в компанию) "user"."participant"."dateCreated"
"id" -> не поддерживается
"skype" -> не поддерживается
"vip" -> не поддерживается. Можно понять статус клиента по полю "user"."participant"."membershipTier"."name"
"name": -> не поддерживается. Можно использовать объединенное поле "user"."displayName"
"birthday"-> не поддерживается. Можно понять дату рождения (при наличии) по полю "user"."birthDate"
"gender"-> изменяется на "user"."gender"
"instagram" -> не поддерживается
"uid" -> изменяется на"user"."uid"
"birthDate" -> изменяется на "user"."birthDate"
"participantId" -> изменяется на "user"."participant"."id"
"surname" -> не поддерживается. Можно использовать объединенное поле "user"."displayName"
"email" -> изменяется на "user"."email"
"avatar" -> изменяется на "user"."avatar"
"participant" -> не поддерживается. Можно понять является ли клиент участником компани по не пустому полю "user"."participant"."id"
5. Именить запрос проведения операции
POST 'https://udsgame.com/v1/partner/purchase?code=123&total=11&cash=11&scores=0&cashierExternalId=11112&phone=null&uid=null&invoiceNumber=123' \
--header 'x-api-key: api_key'
изменяется на
POST 'https://api.uds.app/partner/v2/operations' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Y29tcGFueV9pZDphcGlfa2V5' \
--data '{
"code": 123456, (указать код клиента из приложения UDS App). В v1 параметр "code"
"participant": {
"uid": null, (указать uid клиента). В v1 параметр "uid"
"phone": null (указать номер телефона клиента в международном формате +79123456789). В v1 параметр "phone"
},
"cashier": {
"externalId": "11112" (указать внешний идентификатор кассира). В v1 параметр "cashierExternalId"
},
"receipt": {
"total": "11", (указать сумму чека). В v1 параметр "total"
"cash": "11", (указать сумму деньгами). В v1 параметр "cash"
"points": "00", (указать сумму оплаты бонусами). В v1 параметр "scores"
"number": "123" (указать номер чека). В v1 параметр "invoiceNumber"
}
}'
Изменить обработку ответа запроса проведения операции
"operation"-> не поддерживается. В v2 в ответе на уровень вложенности меньше возвращается в ответе
"operation"."cash" -> изменяется на "cash"
"operation"."cashier" -> изменяется на "cashier"
"operation"."cashier"."email" -> не поддерживается
"operation"."cashier". "externalId" -> не поддерживается
"operation"."cashier"."name" -> изменяется на "cashier"."displayName"
"operation"."customer" -> изменяется на "customer"
"operation"."customer"."id" -> не поддерживается
"operation"."customer"."surname" -> не поддерживается. Можно использовать объединенное поле "customer"."displayName"
"operation"."customer"."name" -> не поддерживается. Можно использовать объединенное поле "customer"."displayName"
"operation"."dateCreated" -> изменяется на "dateCreated"
"operation"."id" -> изменяется на "id"
"operation"."marketingSettings" -> изменяется на "customer"."membershipTier". Важно! Возвращается только значение базового статуса
"operation"."marketingSettings"."discountBase" -> изменяется на "customer"."membershipTier"."rate". Важно! Возвращается только значение базового статуса
"operation"."marketingSettings"."discountLevel1" -> не поддерживается
"operation"."marketingSettings"."discountLevel2"-> не поддерживается
"operation"."marketingSettings"."discountLevel3" -> не поддерживается
"operation"."marketingSettings"."maxScoresDiscount" -> изменяется на "customer"."membershipTier"."maxScoresDiscount". Важно! Возвращается только значение базового статуса
"operation"."participantId" -> изменяется на "customer"."id"
"operation"."scoresDelta" -> изменяется на "points"
"operation". "total" -> изменяется на "total"
6. Именить запрос проведения возврата по операции
POST 'https://udsgame.com/v1/partner/revert/803998923' \
--header 'x-api-key: api_key' \
--header 'Content-Type: application/json' \
--data '{
"partialAmount": 5
}'
изменяется на
POST 'https://api.uds.app/partner/v2/operations/803998923/refund' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Y29tcGFueV9pZDphcGlfa2V5' \
--data '{
"partialAmount": 5
}'
Изменить обработку ответа запроса проведения возврата по операции
"cash" -> остается "cash"
"cashier" -> остается "cashier"
"cashier"."email" -> не поддерживается
"cashier"."externalId" -> не поддерживается
"cashier"."name" -> изменяется на "cashier"."displayName"
"customer" -> остается "customer"
"customer"."id" -> не поддерживается
"customer"."surname" -> не поддерживается. Можно использовать объединенное поле "customer"."displayName"
"customer"."name" -> не поддерживается. Можно использовать объединенное поле "customer"."displayName"
"dateCreated"-> остается "dateCreated"
"id" -> остается "id"
"marketingSettings" -> изменяется на "customer"."membershipTier". Важно! Возвращается только значение базового статуса
"marketingSettings"."discountBase" -> изменяется на "customer"."membershipTier"."rate". Важно! Возвращается только значение базового статуса
"marketingSettings"."discountLevel1" -> не поддерживается
"marketingSettings"."discountLevel2" -> не поддерживается
"marketingSettings"."discountLevel3" -> не поддерживается
"marketingSettings"."maxScoresDiscount" -> изменяется на "customer"."membershipTier"."maxScoresDiscount". Важно! Возвращается только значение базового статуса
"participantId" -> изменяется на "customer"."id"
"scoresDelta" -> изменяется на "points"
"total" -> остается "total"