2014-11-03 10 views
0

googlw-wallet 디지털 상품에 대한 내 포스트 백 파일이 실패했습니다. 나는 내가 구글에서 유효한 응답을 얻는다는 것을 알고있다. 내가 테스트 라인에 넣어서 응답을 이메일로 보낸다. 테스트를 거친 후 올바른 jwt 디코딩 (라인 jwt 디코더에 구글을 사용하여) 아래와 같이. 테스트 라인을 JWT :: decode 라인 아래로 옮겼을 때 jwt (luciferous)에 의해 변경되지 않은 디코드에서 치명적인 오류를 나타내는 응답을 얻지 못했습니다. 내가 직접 포스트 백을 실행할 때, 포함 된 스크립트와 스크립트가 발견된다는 치명적인 오류 (jwt는 물론 게시 됨)가 발생합니다.google-wallet 포스트 백 디코딩 오류

반환 후 다시 eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJHb29nbGUiLCJyZXF1ZXN0Ijp7Im5hbWUiOiJJbnZvaWNlIE51bWJlcjogMTA2NTk3IiwiZGVzY3JpcHRpb24iOiJTdXBwb3J0ZWQgU2VydmljZSIsInByaWNlIjoiMTAwIiwiY3VycmVuY3lDb2RlIjoiR0JQIiwic2VsbGVyRGF0YSI6IkRBVklEIE1JTExTLGRhdmVAZHdtaWxscy5jb20sSW52b2ljZSBOdW1iZXI6MTA2NTk3In0sInJlc3BvbnNlIjp7Im9yZGVySWQiOiJHV0RHX1MuY2VhYmI1YzQtNTk1Ni00OGIyLWE0MGItN2ZjMmRkMTg0YTlhIn0sInR5cCI6Imdvb2dsZS9wYXltZW50cy9pbmFwcC9pdGVtL3YxL3Bvc3RiYWNrL2J1eSIsImF1ZCI6IjEyMzQ1NjA1ODcxOTI0NjQ0MjcyIiwiaWF0IjoxNDE1MDI0ODM0LCJleHAiOjE0MTUwMjQ4NTR9.PV8c18EGWLL38sUDmjMY1HEV91An6ZVnKkymuW2SQUI이다.

header 
    { 
    "alg": "HS256" 
    } 
claims 
    { 
    "aud": "12345605871924644272", 
    "iss": "Google", 
    "request": { 
     "currencyCode": "GBP", 
     "price": "100", 
     "sellerData": "ghhk,ghty.com,Invoice Number:106597", 
     "name": "Invoice Number: 106597", 
     "description": "Supported Service" 
    }, 
    "exp": 1415024854, 
    "iat": 1415024834, 
    "typ": "google/payments/inapp/item/v1/postback/buy", 
    "response": { 
     "orderId": "GWDG_S.ceabb5c4-5956-48b2-a40b-7fc2dd184a9a" 
    } 
    } 
signature 
    PV8c18EGWLL38njyujMY1HEV91An6ZVnKkymuW2SQUI 

디코딩을 시도 할 때 치명적인 오류가 발생합니다. 그 후에 테스트 행을 가져옵니다. 스크립트를 다시 게시의 나

<?php 

    require_once '../../includes/lib/JWT.php'; 
    require_once '../../includes/seller_info_test.php'; 



    $encoded_jwt = $_POST['jwt']; 

    $decodedJWT = JWT::decode($encoded_jwt, $sellerSecret); 
    $orderId  = $decodedJWT->response->orderId; 

    header("HTTP/1.0 200 OK"); 
    echo $orderId; 

    $logfile = "purchasing/logfile.txt"; 
    if (!file_exists($logfile)) { 
     touch($logfile); 
     chmod($logfile, 0777); 
    } 
    $orderIDS = file($logfile); //reads file into array 
    $orderIDS[] = $orderId; //append new orderID to array 
    file_put_contents($logfile, $orderIDS); //save the new array to file 
    ?> 

답변

0

문제는 이제 해결됩니다. 아주 단순한 $ sellerSecret은 그것이 작동 한 실제 값으로 대체 될 때 include 파일에서 읽히지 않았습니다. 내가 생각하는 명백한 것을 찾는다! 로그 파일 줄이 제거되고 보내기 전자 메일이 추가되었습니다. 다음 단계는 판매자 데이터 필드에 대한 응답 데이터를 데이터베이스에 다시 쓰는 포함 파일을 작성하는 것입니다.