0

Square-Connect Webhook を有効にしています。サーバー スクリプトへの POST を受信して​​います。それでも $_POST 配列は空のようです。

これが私のコードです:

<?php
  $sRM = $_SERVER['REQUEST_METHOD'] ;
  $sH = null ;
  
  if ( 'PUT' == $sRM )
  {
    $sH = file_get_contents( 'php://input' ) ;
  }
  else if ( 'POST' == $sRM )
  {
    $sS = '' ;
    
    foreach( $_POST as $sK => $sV )
    {
      $sH .= $sK.'=>'.$sV ;
      $sS = ', ' ;
    }
  }
  
  if ( ConnectDB() )
  {
    $_SESSION[ 'DB' ]->real_escape_string( trim( $sH ) ) ;  //  Prevent SQL Injection
    $rR = $_SESSION[ 'DB' ]->query( 'INSERT INTO `Hooks` ( `Method`,`Message` ) VALUES ( "'.$sRM.'", "'.$sH.'" ) ;' ) ;
  }
?>

ありがとう、ロブ

4

1 に答える 1

3

正方形のドキュメントには、POST 本文は JSON 形式になると記載されているため、PHP はそれをフォームのように解析して $_POST 配列に入力しません。次のようなことをする必要があります:

$json = file_get_contents('php://input');
$obj = json_decode($json);

PHP を使用して JSON POST を読み取るへの回答で説明されているように。

于 2015-05-14T17:48:00.473 に答える