그래서이 웹 사이트의 IPN 기능을 사용하여 내 친구들과 내가 작업하고있는 바보 같은 프로젝트에 그것을 포함시키지 않겠습니까? 솔직히 말해서 나는 C#을 많이 알지 못한다. 나는 언어에 상당히 익숙하지 않다. (코딩 연습을 몇 달간). 이것은 그들이 그것을 사용하는 방법을 알아주는 PHP 샘플입니다 : https://github.com/Rocketr/rocketrnet-ipn-php/blob/master/example_rocketr_ipn.phpRocketr IPN with C# ASP.NET MVC
나는 IPN가 서버 페이지를 칠 때 나는 기능을 가진 모델 설정을 가지고 MVC 5에 같은 수신기를 만들려고 노력하고 있어요 요청을 처리하지만 매번 실패하고 로그에 캡처하려고하는 원시 데이터를 쓰지 않는 것 같습니다.
// GET: Purchases/Incoming
public void Incoming()
{
var ipnDebugLog = HttpRuntime.AppDomainAppPath + "/Logs/IPN/debug.txt";
var testIPNKey = "the hash here";
byte[] ipnToByes = Encoding.ASCII.GetBytes(testIPNKey); // IPN string to byteto hash with
var recvdIPN = Request["HTTP_IPN_HASH"];
HMACSHA256 testHash = new HMACSHA256(ipnToByes); // Setting testHash to IPN secret string
string ipnHeader = Request["IPN_HASH"];
using (StreamWriter sw = new StreamWriter(ipnDebugLog))
{
sw.WriteLine(ipnHeader);
foreach (var reqHead in ipnHeader)
{
sw.WriteLine(reqHead.ToString());
sw.WriteLine("JSON String: " + Request["HTTP_IPN_SECRET"]);
sw.WriteLine(recvdIPN);
sw.WriteLine("From: " + GetIPAddress());
}
}
}
그래서 이것은 Rocketr에서 보낸 데이터를 가져 오려고합니다. 사이트에이 상태 :
는 페이로드의 무결성을 확인하기 위해, 우리는 "IPN_HASH"라는 HTTP 헤더를 통해 HMAC 서명 를 보내드립니다. HMAC 서명은 으로 서명 된 json으로 인코딩 된 POST 개체로 IPN 암호로 이루어집니다. 이 저장소의 example_rocketr_ipn.php 파일에서 이 서명을 확인하는 방법을 확인할 수 있습니다.
나는 단지 이런 식으로 작동하는 C#을 이해하기 위해 바보스럽고 새로운가요? 나는 원시 데이터를 읽는 것이 옳은 것처럼 느껴진다.하지만 나는 틀린 것일까?
질문을 요약하십시오. 원시 기본 HTTP 헤더 인 IPN_HASH를 읽는 잘못된 방법을 사용하고 있습니까? PHP 예제에서 벗어나 서버 변수 헤더를 읽으려고 isset을 사용했습니다. HTTP_IPN_HASH가 맞습니까?
컨트롤러인가요? FromHeader 속성으로 바인딩을 사용하지 않는 이유는 무엇입니까? – frz3993
HTTP 헤더가 'Request.Headers'에 있습니다. 당신은'string' (?)에서'foreach'를하고 있습니다, _etc_. – EdSF
내가 C#과 ASP.net에 대해 매우 익숙하다고 말했듯이, 나는 모든 헤더 데이터와 바디 데이터를 나열 할 수 있었고 Rocketr은 잘못된 헤더 이름 필드를보고하여 설명했다. 데이터가 올바르게 읽혀 지므로 백업 된 데이터를 조작 할 수 있습니다. 그러나 나는이 HMAC512 것을 다루는 방법을 알아 내야합니다. 그래서 이걸 변환해야합니다. $ hmac = hash_hmac ("sha512", json_encode ($ _ POST), trim ($ IPN_SECRET)); C#의 함수에 대해서만 : HMACSHA512 myIPNHash = new HMACSHA512 (Encoding.ASCII.GetBytes (myIPNKey)); 분명히 작동하지 않는 ... 내가 전화 할 때. 해시 – Ar2Dee2