실시간 상태 업데이트 구독(XUMM PHP SDK)

6763 단어 sdkphpxrplxumm

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);


이제 사용자가 요청에 서명하거나 거부하면(URL을 따라 수행할 수 있음)
), 함수가 호출되고 구독이 종료됩니다.

4.3 사용자 토큰 획득 및 푸시 알림 보내기



다음에 이 사용자에게 서명 요청을 보낼 때 휴대폰에서 푸시 알림을 받길 원한다고 가정해 보겠습니다.
사용자 토큰을 가져와서 다음 페이로드에 전달하면 됩니다. 사용자 토큰은 다음과 같은 경우에 발행됩니다.
그들은 첫 서명 요청에 서명합니다. 반환된 이벤트 데이터를 사용하여 서명된 요청을 가져오기만 하면 됩니다.
콜백 함수.

참고: 이 부분은 Promises 을 사용합니다.
PHP. JavaScript로 비동기 코드를 작성했다면 익숙할 것입니다.

구독이 종료될 때까지 기다린 다음 다른 지불 요청을 보내십시오. 이번에는 A를 받겠습니다.
우리가 얻은 사용자 토큰을 전달하기 때문에 휴대전화에 푸시 알림이 표시됩니다.

$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에 대해 푸시 알림을 켜야 합니다. 그것은 또한
전화를 잠그고
들어오는 알림을 명확하게 확인하십시오.

--

크레딧: 감사합니다Pauline !

좋은 웹페이지 즐겨찾기