Jump to content
Fivewin Brasil

Leaderboard

Popular Content

Showing content with the highest reputation on 04/17/2023 in all areas

  1. Olá, Recentemente integramos a API de loja virtual da Tray com nosso software e alguns aspectos foram bem nebulosos, por isto quero dividir com vocês uma dica super útil para casos como este, onde é necessário realizar um HTTP PUT usando lib cUrl. Segue o exemplo de código que demonstra o trecho mais importante: FUNCTION Tray_UpdateEstoque( sku_id, nEstoque, access_token ) LOCAL cEndPoint := 'https://666.commercesuite.com.br/web_api/products/'+alltrim(str(sku_id))+'?access_token='+access_token LOCAL cData := '{"Product": {"stock": '+ALLTRIM(STR(nEstoque))+'}}' LOCAL curl LOCAL nRet LOCAL Buff LOCAL Resp IF !empty( curl := curl_easy_init() ) curl_easy_setopt( curl, HB_CURLOPT_HTTPHEADER, {"Content-Type:application/json"} ) curl_easy_setopt( curl, HB_CURLOPT_CUSTOMREQUEST, 'PUT') curl_easy_setopt( curl, HB_CURLOPT_URL, cEndPoint ) curl_easy_setopt( curl, HB_CURLOPT_POSTFIELDS, cData ) curl_easy_setopt( curl, HB_CURLOPT_FOLLOWLOCATION, 1) curl_easy_setopt( curl, HB_CURLOPT_DL_BUFF_SETUP ) curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYPEER, 0 ) curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYHOST, 0 ) nRet := curl_easy_perform( curl ) Buff := curl_easy_dl_buff_get( curl ) curl_easy_cleanup( curl ) IF (nRet == HB_CURLE_OK) hb_jsonDecode( Buff, @Resp ) ENDIF ELSE RETURN .F. ENDIF IF !HB_ISHASH(Resp) ? Buff // Exibe na tela a mensagem de erro obtida RETURN .F. ENDIF * Retorno em caso de sucesso (status code 200 ou 201) nRet := Resp['code'] RETURN (nRet == 200 .OR. nRet == 201) Em nosso caso utilizamos o compilador Harbour, mas, isto deve servir como base para você caso use outros compiladores. Espero ter ajudado.
    2 points
×
×
  • Create New...