ステータスの更新を購読する
4 .ライブステータス更新を購読する
これまでのところ、お支払い要求を作成し、“次の”URLをクリックし、承認するためにxummアプリを使用してQRコードをスキャンしました
またはリクエストを拒否します.すごい!
アプリ開発者として、あなたのペイロードのライブステータスの更新を購読し、それらに反応することができます.例えば、あなたは
お支払い要求が受け入れられたというメッセージをリクエストしたユーザーを表示します.🎉ユーザーが反対側に
あなたの要求にサインしたか、支払い要求が拒絶されました️「拒絶されたとき.
やってみましょう.
4.1コールバック関数を作成する
ステータスの更新を非常に強力に購読することの一つは、コールバック関数を
データを処理します.ステータス更新データは、あなたのコールバックにXrpl\XummSdkPhp\Subscription\CallbackParams
.
スクリプトの一番下にコールバックを定義しましょう
$callback = function(CallbackParams $event): ?array
{
if (!isset($event->data['signed'])) {
return null; // Don't do anything, wait for the next message.
}
if ($event->data['signed'] === true) {
echo "🎉 Payment request accepted!\n";
return $event->data; // Returning a value ends the subscription.
}
echo "Payment request rejected :(\n";
return [];
};
4.2サブスクリプションを開始する
今すぐサブスクリプションを開始し、来ているすべてのイベントを処理するために我々のコールバックを渡しましょう!
$subscription = $sdk->subscribe($createdPayload, $callback);
今、ユーザーがログインまたは要求を拒否するとき
の場合は、関数が呼び出され、サブスクリプションが終了します.
4.3ユーザトークンを取得し、プッシュ通知を送信する
次回は、このユーザーにサインリクエストを送ってください.
ユーザトークンを取得し、次のペイロードに渡すことによって行うことができます.ユーザトークンは
彼らは最初のサインリクエストにサインします.我々は、我々が返す我々のイベントデータを使用して、署名された要求をフェッチしなければなりません
コールバック関数.
ご注意:この部分は使用しますPromises , これはかなり新しいコンセプトです
PHPあなたがJavaScriptでasyncコードを書いたならば、あなたはそれに精通しています.
サブスクリプションが終了するまで待ちましょう.今回は、私たちは
我々が得たユーザートークンを渡すので、我々の電話で通知を押してください.
$subscription->resolved()
->done(function (array $data) use ($sdk) {
$payloadId = $data['payload_uuidv4'] ?? false;
if (!$payloadId) {
return null;
}
$signedRequest = $sdk->getPayload($data['payload_uuidv4']);
$newRequest = $sdk->createPayload(new Payload(
[
'TransactionType' => 'Payment',
'Destination' => 'rGBiHBoEs238W7H1b4gMey55He97kWcoUb', // Use your own address here
'Amount' => '1000',
],
$signedRequest->application->issuedUserToken,
));
echo sprintf("The new request was %s\n", $newRequest->pushed ? 'pushed' : 'not pushed...');
});
あなたの実際の電話でこれをテストするには、プッシュ通知をXUMMのためにオンにする必要があります知ってください.また
短くするのを手伝うsleep()
ステートメントは、新しい要求をプッシュする前に、あなたの電話をロックするためにいくつかの時間があります
明らかに通知が来るを参照してください.
--
ありがとうございますPauline !
Reference
この問題について(ステータスの更新を購読する), 我々は、より多くの情報をここで見つけました
https://dev.to/wietse/subscribe-to-live-status-updates-xumm-php-sdk-5131
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
$callback = function(CallbackParams $event): ?array
{
if (!isset($event->data['signed'])) {
return null; // Don't do anything, wait for the next message.
}
if ($event->data['signed'] === true) {
echo "🎉 Payment request accepted!\n";
return $event->data; // Returning a value ends the subscription.
}
echo "Payment request rejected :(\n";
return [];
};
$subscription = $sdk->subscribe($createdPayload, $callback);
$subscription->resolved()
->done(function (array $data) use ($sdk) {
$payloadId = $data['payload_uuidv4'] ?? false;
if (!$payloadId) {
return null;
}
$signedRequest = $sdk->getPayload($data['payload_uuidv4']);
$newRequest = $sdk->createPayload(new Payload(
[
'TransactionType' => 'Payment',
'Destination' => 'rGBiHBoEs238W7H1b4gMey55He97kWcoUb', // Use your own address here
'Amount' => '1000',
],
$signedRequest->application->issuedUserToken,
));
echo sprintf("The new request was %s\n", $newRequest->pushed ? 'pushed' : 'not pushed...');
});
Reference
この問題について(ステータスの更新を購読する), 我々は、より多くの情報をここで見つけました https://dev.to/wietse/subscribe-to-live-status-updates-xumm-php-sdk-5131テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol