Форум » Для флейма » bitrix » Ответить

bitrix

Haz: Всем привет, коллеги , есть у кого опыт передачи данных в BITRIX ? читаю через вебхук как xml легко , пытаюсь записать приходит ответ OK , но не записывает ничего. пишу так [pre2] jSon := hb_hash() jSon['ID']:= 218 jSon['FIELDS'] := hb_hash() jSon['FIELDS']['OPPORTUNITY'] := 8000.50 oHttp := TIpClientHttp():new( cUrl + "/crm.deal.update.jSon" ) if oHttp:open() oHttp:Post( hb_jsonEncode( jSon,.t.) ) // oHttp:cReply говорит OK, но в поле OPPORTUNITY сделки сумма 8000.50 не пишется oHttp:close() end [/pre2]

Ответов - 9

Dima: Haz пишет: jSon['FIELDS']['OPPORTUNITY'] := &000.50 Haz пишет: но в поле OPPORTUNITY сделки сумма 8000.50 не пишется Красным это опечатка ?

Haz: Dima пишет: Красным это опечатка да опечатка, ПОПРАВИЛ В ВОПРОСЕ Пробовал прямо указать json строкой как '{ "ID": "218", "fields": { "OPPORTUNITY": "20000.00" } }' тоже не идет , пишет BAD request

SergKis: Haz пишет читаю через вебхук как xml легко , пытаюсь записать приходит ответ OK , но не записывает ничего. попробуй прочитать в json, посмотри, может надо в json5 работать.


Dima: SergKis пишет: попробуй прочитать в json, посмотри, может надо в json5 работать. +1

Haz: Dima пишет: попробуй прочитать в json, посмотри, может надо в json5 работать. читает да в jSon5 вроде не там проблема скармливаю тот же json битриксу через Insomnia все работает А из своей программы не хочет [pre2] jSon := '{ "ID": "218", "fields": { "OPPORTUNITY": "22.00" } }' oUrl := TURL():New( "https://... /crm.deal.update.jSon" ) oHttp := TIpClientHttp():new( oUrl ) if oHttp:open() oHttp:Post(jSon) MsgDebug(oHttp:cReply ) // дает BAD request 400 oHttp:close() end [/pre2] похоже не в жейсоне дело завтра попробую xml скормить через пост Ps. Возможно дело ещё в кодировке, надо utf8, а я json пихнул в 1251. Тож завтра проверю

Haz: Haz пишет: похоже не в жейсоне дело завтра попробую xml скормить через пост В общем все работает , только от TIpClientHttp отказался . переделал все на oHttp := CreateObject( 'Microsoft.XMLHTTP' ) и проблема ушла . Читает и пишет в битрикс нормально. записал в битрикс так [pre2] jSon := '{"ID": "218", "fields": { "OPPORTUNITY": "10000.50" }}' jSon := hb_translate( jSon, "RU1251", "UTF8" ) cHtml := HttpRequest( "POST", cUrl, @nStatus , jSon ) Func HttpRequest( cMethod, cUrl, nStatus, Json ) local oHttp := CreateObject( 'Microsoft.XMLHTTP' ) oHttp:Open( cMethod, cUrl, .F. ) oHttp:SetRequestHeader( "Content-Type","application/json") oHttp:Send( Json ) nStatus := oHttp:Status return oHttp:ResponseBody [/pre2]

SergKis: Haz пишет только от TIpClientHttp отказался . переделал все на oHttp := CreateObject( 'Microsoft.XMLHTTP' ) Игорь, в последнем ты задал заголовок oHttp:SetRequestHeader( "Content-Type","application/json") в TIpClientHttp не задавал и он формировался внутри не для этой ситуации с json. Ты пробовал задавать или отказался сразу ?

Dima: SergKis пишет: Ты пробовал задавать или отказался сразу ? Тоже интересно

Haz: Dima пишет: Ты пробовал задавать или отказался сразу ? Не пробовал , тоже есть мысль что из за заголовка . XMLHTTP мне показался проще на порядок для этой задачи. Сейчас попробую и отпишусь в этот же пост попробовал , при :Post( Json ) возвращает 200. OK но по факту ничего не записывает в битрикс.



полная версия страницы