VS2022,钉钉订阅

   //方法
    [HttpPost]
    [Produces("application/json")]
    public ActionResult DingDingBackEntity([FromQuery] string signature, [FromQuery] string timestamp, [FromQuery] string nonce, [FromBody] Encrypt encrypt)
    {
        //实例化钉钉解密类构造参数为对应的 应用中的token、appkeys、AppKey值
        DingTalkEncryptor dingTalkEncryptor = new DingTalkEncryptor("", "", "");
        //定义字符串接收解密后的值
        string returnDate = dingTalkEncryptor.getDecryptMsg(signature, timestamp, nonce, encrypt.encrypt);
        JToken jToken = JToken.Parse(returnDate);
         
        //取出事件类型字段
        string EventType = jToken["EventType"].ToString();
        //这里解密以后取出的这个EventType这个参数对应的就是你所要匹配的事件了具体的事件参数类型可查看钉钉的接口文档
        //https://open.dingtalk.com/document/org/event-list-1

        if (EventType == "check_url")
        {
            _logger.LogInformation("check_url 测试成功!");
        } 
        else if (EventType == "bpms_task_change" )
        {    
        }
        else if( EventType == "bpms_instance_change")
        { 
        }
        else
        {
        }

        //将json串中的指定值取出           
        var msg = dingTalkEncryptor.getEncryptedMap("success");
        DingDingBackEntity back = new DingDingBackEntity();
        back.msg_signature = msg["msg_signature"];
        back.encrypt = msg["encrypt"];
        back.timeStamp = msg["timeStamp"];
        back.nonce = msg["nonce"];
        return Ok(back); 
    }

//接收参数的类
public class Encrypt
{
public string encrypt { get; set; }
}

//返回参数的类
public class DingDingBackEntity
{
public string msg_signature { get; set; }

    public string encrypt { get; set; }

    public string timeStamp { get; set; }

    public string nonce { get; set; }
     
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值