2017-05-06 2 views
0

사람이 내가asp.net에서 shopify은 webhook 요청을 확인하는 방법

===============이

있는지 확인하려면 HMAC를 계산 어떻게 설명 할 수있는 요청이 Shopify에서 나온 경우, 다음 알고리즘에 따라 HMAC 다이제스트를 계산하고이를 X-Shopify-Hmac-SHA256 헤더의 값과 비교하십시오. 일치하는 경우 Webhook이 Shopify에서 전송되었고 데이터가 손상되지 않았 음을 확신 할 수 있습니다.

각 Webhook 요청에는 요청에서 보낸 데이터와 함께 앱의 공유 암호를 사용하여 생성 된 X-Shopify-Hmac-SHA256 헤더가 포함되어 있습니다.

내가 비밀 키를 가지고 ... 나는 HMAC

+0

또한 정확한 비밀 키가 있는지 확인하십시오. 두 가지가있다. https://stackoverflow.com/a/44763029/1455074 – tschwab

+0

올바른 "비밀 키"를 찾을 수 있었습니까? 파트너 대시 보드에서 공유 비밀 키를 찾을 수 없습니다. – HymnZ

+0

@tschwab, 연결된 질문에서 언급 한 내용, 앱이 공개 앱인 경우 내 상점이 설치된 각 매장에서 어떻게 "--- MY_REAL_SHARED_SECRET ---"을 얻을 수 있습니까? 나에게는 내 생각이 들리지 않는다. 귀하가 말한 것은 상점 관리자가 수동으로 만든 웹 훅의 경우 작동하지만 API를 사용하는 공개 앱이 만든 것은 아닙니다. 이것에 대한 어떤 불빛이라도? – HymnZ

답변

0

가장 쉬운 방법을 생성하는 요청에 비밀 키 + 데이터를 결합 할 수 있습니다 방법 ShopifySharp Library을 사용하는 것입니다. Nuget 패키지를 사용하여 프로젝트에 설치할 수 있습니다. 당신이 ShopifySharp를 사용하지 않으려면 그들이 source code에서 그것을 구현하는 방법을

NameValueCollection requestHeaders = Request.Headers; 
Stream inputStream = Request.InputStream; 

if(AuthorizationService.IsAuthenticWebhook(requestHeaders, inputStream, shopifySecretKey)) 
{ 
    //Webhook is authentic. 
} 
else 
{ 
    //Webhook is not authentic and should not be acted on. 
} 

, 당신이 볼 수

은 검증 webhooks의 ShopifySharp 웹 사이트에서 가져온 예입니다.