お勧めのウェブフック
お知らせ
ドキュメンテーションのウェブフックとそのパラメータの詳細な説明を参照してください。
注意
以下に表示されているコードはサンプルです。本番環境では、より開発とサポートに適応的なオプションを使用することがお勧めです。
- ユーザー検証
Copy
- php
<?php
case Message::USER_VALIDATION:
/** @var Xsolla\SDK\Webhook\Message\UserValidationMessage $message */
$userArray = $message->getUser();
$userId = $message->getUserId();
$messageArray = $message->toArray();
// TODO if user not found, you should throw
Xsolla\SDK\Exception\Webhook\InvalidUserException
break;
user_id
(文字列)は、あなたのアプリ内の一意のユーザーIDです。これはニックネームまたは他のユーザーを識別するパラメータであることがあります。このユーザーIDを使用して、あなたのアプリのデータベースへのリクエストを作成します。このIDを持つユーザーが既に存在する場合、break
メソッドを呼び出します。それ以外の場合は、InvalidUserException
例外をスローします。
例:
Copy
- php
<?php
DEFINE('DB_USER', 'root'); // specify
DEFINE('DB_PASSWORD', 'yourpasswordhere'); // specify
DEFINE('DB_HOST', '127.0.0.1'); // specify
DEFINE('DB_NAME','127.0.0.1'); //specify
$callback = function (Message $message) {
$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
OR die('Could not connect to MySQL '. mysqli_connect_error());
switch ($message->getNotificationType()) {
case Message::USER_VALIDATION:
$userId = $message->getUserId();
$query = "SELECT * FROM user_db.users u WHERE userID IN ('{$userId}') ";
$response = @mysqli_query($dbc, $query);
if (mysqli_num_rows($response) == 0){
throw new InvalidUserException('User not found');
}
break;
use Xsolla\SDK\Exception\Webhook\InvalidUserException;
use Xsolla\SDK\Webhook\Message\Message;
DEFINE('DB_USER', 'dbuser'); // specify
DEFINE('DB_PASSWORD', 'dbpassword'); // specify
DEFINE('DB_HOST', '127.0.0.1'); // specify
DEFINE('DB_NAME', 'dbname'); //specify
$callback = function (Message $message) {
$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit;
}
switch ($message->getNotificationType()) {
case Message::USER_VALIDATION:
$userId = mysqli_real_escape_string($dbc, $message->getUserId());
$query = "SELECT COUNT(user_id) FROM dbname.users WHERE user_id =
'{$userId}'";
$response = @mysqli_query($dbc, $query) or die(mysqli_error($dbc));
if ((int)mysqli_fetch_row($response)[0] === 0) {
throw new InvalidUserException('User not found');
}
break;
default:
break;
}
};
- 支払い
Copy
- php
<?php
case Message::PAYMENT:
/** @var Xsolla\SDK\Webhook\Message\PaymentMessage $message */
$userArray = $message->getUser();
$paymentArray = $message->getTransaction();
$purchaseArray =$message->getPurchase();
$paymentId = $message->getPaymentId();
$externalPaymentId = $message->getExternalPaymentId();
$paymentDetailsArray = $message->getPaymentDetails();
$customParametersArray = $message->getCustomParameters();
$isDryRun = $message->isDryRun();
$messageArray = $message->toArray();
// TODO if the payment delivery fails for some reason, you should throw
Xsolla\SDK\Exception\Webhook\XsollaWebhookException
break;
お知らせ
購入したアイテムのリストは
purchaseArray
配列に渡されます。その内容のオプションは支払いウェブフックパラメータの説明に利用できます。この記事は役に立ちましたか?
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。