検索
ホームページバックエンド開発PHPの問題PHPの非同期通知とはどういう意味ですか?

php の非同期通知は、簡単にメカニズムとして理解できます。このメカニズムは、システム間のデータのやり取りやインターフェースのドッキングを実現するために使用されます。これにより、双方のデータの同期と正確性を確保し、データの更新時期を回避できます。双方の時間間隔が一致しない、支払いは成功しても結果が失敗するなどの問題。

PHPの非同期通知とはどういう意味ですか?

このチュートリアルのオペレーティング システム: Windows 10 システム、php8.1.3 バージョン、Dell G3 コンピューター。

1. PHP 非同期通知とは何ですか?

PHP の非同期通知は、システム間のデータ対話やインターフェースのドッキングを実現するために使用されるメカニズムとして単純に理解できます。もちろん、実際の開発では、どの言語やフレームワークであっても、それぞれ独自の実装方法や特徴があります。

PHP 非同期通知について具体的に言うと、通常、支払いやサードパーティ API などのトランザクションを実行するときに受信者 (つまりサーバー) によって実装されるコールバック メソッド、つまり非同期通知コールバックを指します。

2. PHP 非同期通知の役割

ほとんどのトランザクションでは、多くの場合、両方の当事者を同時に操作する必要があり、両方でデータ更新シーケンスを実行する必要があります。一貫性がなければ、データのセキュリティ上の問題が発生しやすくなります。したがって、システム設計者は、トランザクションの完了後に非同期通知を使用して、双方のデータの同期と正確性を確保する必要があります。

これを視覚化するには、たとえばオンライン ショッピングのトランザクション シナリオを考えてみましょう。ユーザーがオンラインで支払いを行うと、対応する支払い用 QR コードがフロント デスクに表示され、その QR コードがフロント デスクに転送されます。サーバー転送による支払いページ。ユーザーの支払いツールがスキャンして支払いを完了すると、QR コードは確認情報を返し、データベースを更新します。次に、データベースは、トランザクションが成功したかどうかに基づいて、対応するステータス フィードバックをフロント エンドに返し、表示します。

非同期通知機能がない場合、すべての注文ステータスを同期的に更新する必要があり、双方のデータ更新間隔が一致しない場合、決済は成功しても結果が表示されないなどの問題を回避できません。 。

3. PHP 非同期通知の実装方法

PHP 非同期通知の実装方法は、通常、curl ライブラリまたは fsockopen 関数を使用します。具体的な実装方法は次のとおりです。 :

curl ライブラリを使用して非同期通知を実装します:

$url = "https://example.com/notify_url.php"; // 异步通知接口地址
$data = array(
    'order_id' => 001, // 订单号
    'amount' => 100, // 金额
    'status' => 1, // 状态码
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // post请求数据
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置超时时间
curl_exec($ch);
curl_close($ch);

fsockopen 関数を使用して非同期通知を実装します:

$url = "example.com"; // 服务器域名
$port = 80; // 服务器端口
$path = "/notify_url.php"; // 异步通知接口地址
$data = array(
    'order_id' => 001, // 订单号
    'amount' => 100, // 金额
    'status' => 1, // 状态码
);
$requestBody = http_build_query($data); // 构造post请求数据
$contentLength = strlen($requestBody); // 请求主体长度
$header = "POST {$path} HTTP/1.1\r\n";
$header .= "Host: {$url}\r\n";
$header .= "Content-type: application/x-www-form-urlencoded\r\n";
$header .= "Content-length: {$contentLength}\r\n";
$header .= "Connection: close\r\n\r\n";
$header .= $requestBody; // 拼接http头和请求主体
$fp = fsockopen($url, $port, $errno, $errstr, 30); // 建立socket连接
if ($fp) { // 发送请求并获取返回结果
    fwrite($fp, $header);
    stream_set_timeout($fp, 30);
    $response = stream_get_meta_data($fp);
    fclose($fp);
}

以上がPHPの非同期通知とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール