Javascript Bot framework v4 Node.js:如何基于外部触发器(post请求)进入下一个瀑布式步骤

Javascript Bot framework v4 Node.js:如何基于外部触发器(post请求)进入下一个瀑布式步骤,javascript,node.js,botframework,Javascript,Node.js,Botframework,简短问题:我需要一种基于外部触发器(post请求)的下一个瀑布式步骤 长问题 我需要与支付服务提供商建立集成。 我现在有很多零碎的东西和和平,但不能把它们都绑在一起。 我心目中的过程非常简单,包括: 组件对话框A 包含三个高级步骤的瀑布式对话框,用于: -1收集用户详细信息 -2等待付款->启动组件对话框B -3数字产品的实现 组件对话框B 照顾 -1创建发票 -2发票的付款 -3返回组件对话框A Index.js 包含PSP调用的restify服务器,其中包含支付请求的状态更新 快乐流 如果用

简短问题:我需要一种基于外部触发器(post请求)的下一个瀑布式步骤

长问题 我需要与支付服务提供商建立集成。 我现在有很多零碎的东西和和平,但不能把它们都绑在一起。 我心目中的过程非常简单,包括:

组件对话框A

包含三个高级步骤的瀑布式对话框,用于:

-1收集用户详细信息

-2等待付款->启动组件对话框B

-3数字产品的实现

组件对话框B

照顾

-1创建发票

-2发票的付款

-3返回组件对话框A

Index.js

包含PSP调用的restify服务器,其中包含支付请求的状态更新

快乐流 如果用户点击组件对话框A,我们会问一些问题,要求提前付款(组件对话框B),一旦付款到位,我们就会发送他或她支付的数字商品(组件对话框A)

为了实现这一点,我的想法是将主动消息\事件与ActivityPrompt相结合。然而,我无法让它工作

一旦PSP的webhook向webhook/payment发送post请求,为了让我们知道付款已到位,我希望能够发送一个事件,由ActivyPrompt的验证器进行验证。我是通过检查Github中的ActivityPrompt测试场景得出这个想法的(虽然ActivityPrompt似乎是一个功能强大的工具,但没有太多关于它的文档)

该事件将导致ComponentDialogA进入下一个瀑布式步骤并发送用户订购的商品

等待付款提示初始化:

        this.addDialog(new ActivityPrompt(WAITING_FOR_PAYMENT_PROMPT, this.awaitingPaymentValidator));
实际提示

        return await stepContext.prompt(WAITING_FOR_PAYMENT_PROMPT, 'Waiting for payment ...');
提示验证器

    async awaitingPaymentValidator(promptContext) {
        return (promptContext.context.activity.type === 'event');
    }
我尝试了多种验证提示的替代方法,但最终总是出现这样的情况:用户在支付发票后,必须做一些事情才能进入下一步。它是有效的,但不是你所期望的

这可能吗?如果可能的话,我错过了什么?或者另一种方法?我很欣赏你的想法

[更新]我还有两个策略要尝试:

  • 在主动消息中创建dialogcontext,希望我能够从此结束等待付款提示对话框
  • 了解如何在Combination中利用dialogContext.emitEvent 以积极的姿态
  • 公元1年。不工作。已创建dialogcontext,但dialogcontext.endDialog不会结束提示。->

    公元2年。我试过了,但没有成功。我怀疑这是一个自适应对话框功能,它意外地进入了“正常”对话框文档

    解决方法:不显示主动“消息”,而是显示一个按钮(内容基于状态付款),供用户单击并向前移动

    解决方案目前还可以,但最好的选择是进入下一个瀑布式步骤

        async awaitingPaymentValidator(promptContext) {
            return (promptContext.context.activity.type === 'event');
        }