• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信公众号 > C#开发微信门户及应用微信裂变红包

C#开发微信门户及应用微信裂变红包

作者:匿名 字体:[增加 减小] 来源:互联网

匿名通过本文主要向大家介绍了C# 微信开发等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
在上篇随笔《C#开发微信门户及应用(33)--微信现金红包的封装及使用》介绍了普通现金红包的封装和使用,这种红包只能单独一次发给一个人,用户获取了红包就完成了,如果我们让用户收到红包后,可以继续发送给多个用户,让他们获得固定或者随机金额的操作,这种称之为裂变红包。本篇随笔继续上面的主题,继续介绍其中裂变红包的C#代码封装和使用操作。

1、裂变红包介绍

领到企业裂变红包的用户,可以继续帮好友领红包,将企业红包以裂变形式散播给更多好友,赋予营销更多的趣味和愉悦!裂变红包不断强化企业品牌效应并形成裂变性传播,是品牌宣传的营销利器。企业只需要指定一组红包的个数和总金额,由微信支付计算出各红包金额,简单方便。

微信支付裂变红包向微信支付商户开发,具体能力如下:

1、商户调用接口时,通过指定发送金额以及指定一位发送对象的方式发放一组裂变红包

2、指定发送对象领取到红包后,资金直接进入微信零钱,带给用户微信支付原生的流畅体验

3、指定发送对象能够将组合中的剩余红包分享给好友,好友可继续领取,形成传播效应,放大企业品牌价值

裂变红包的总体处理过程及接口和普通的现金红包差别不太大,理解了现金红包,对裂变红包的封装和使用过程应该是很容易的事情。

裂变红包接口,用于企业向微信用户个人发裂变红包

目前支持向指定微信用户的openid发放指定金额裂变红包。(获取openid参见微信公众平台开发者文档: 网页授权获取用户基本信息)

接口参数与用户领用实际效果对应关系如下:

C#开发微信门户及应用微信裂变红包


接口调用请求说明

请求Urlhttps://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack
是否需要证书是(证书及使用说明详见商户证书)
请求方式POST


和前面介绍的现金红包一样,我们也可以把裂变红包的参数分为两个部分,一个是常规参数,一个是业务参数,如下所示。

C#开发微信门户及应用微信裂变红包

2、裂变红包的C#代码封装

从上面的传递参数我们可以把它分两部分,当我们传入下面的参数后

<xml> 
   <sign><![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]></sign>
   <mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno>
   <mch_id><![CDATA[1000888888]]></mch_id>
   <wxappid><![CDATA[wxcbda96de0b165486]]></wxappid> 
   <send_name><![CDATA[send_name]]></send_name> 
   <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid> 
   <total_amount><![CDATA[600]]></total_amount> 
   <amt_type><![CDATA[ALL_RAND]]></amt_type> 
   <total_num><![CDATA[3]]></total_num> 
   <wishing><![CDATA[恭喜发财]]></wishing>
   <act_name><![CDATA[新年红包]]></act_name> 
   <remark><![CDATA[新年红包]]></remark> 
   <nonce_str><![CDATA[50780e0cca98c8c8e814883e5caa672e]]></nonce_str> 
</xml>

上面的传入参数提交给地址:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack后,成功后会返回下面的XML。

<xml> 
   <return_code><![CDATA[SUCCESS]]></return_code> 
   <return_msg><![CDATA[发放成功.]]></return_msg> 
   <result_code><![CDATA[SUCCESS]]></result_code> 
   <err_code><![CDATA[0]]></err_code> 
   <err_code_des><![CDATA[发放成功.]]></err_code_des> 
   <mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno> 
   <mch_id>10010404</mch_id> 
   <wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid> 
   <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid> 
   <total_amount>3</total_amount> 
   <send_time><![CDATA[20150227091010]]></send_time>
   <send_listid><![CDATA[1000000000201502270093647546]]></send_listid>
</xml>

如果失败的时候,那么返回的XML就少了很多信息,如下所示。

<xml>
   <return_code><![CDATA[FAIL]]></return_code>
   <return_msg><![CDATA[系统繁忙,请稍后再试.]]></return_msg>
   <result_code><![CDATA[FAIL]]></result_code>
   <err_code><![CDATA[268458547]]></err_code>
   <err_code_des><![CDATA[系统繁忙,请稍后再试.]]></err_code_des>
   <mch_billno><![CDATA[0010010404201411170000046542]]></mch_billno>
   <mch_id>10010404</mch_id>
   <wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid>
   <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>
   <total_amount>3</total_amount>
</xml>


根据这些规则,我们对裂变红包的接口和实现代码进行了封装,以便更好的使用。

例如我们根据普通现金红包和裂变红包的实体类相似的特点,我们设计了几个类来存储信息,传入参数的对象关系如下图所示。

C#开发微信门户及应用微信裂变红包

同样,对于返回的发送红包结果,由于需要考虑在错误的时候的信息返回和成功的信息返回,我们设计了返回结果类的关系如下所示。

C#开发微信门户及应用微信裂变红包

根据上面的设计思路,我们设计的类代码如下所示。

/// <summary>
    /// 发送裂变红包的数据信息
    /// </summary>
    public class SendGroupRedPackJson : BaseRedPackJson
    {     
        /// <summary>
        /// 红包金额设置方式
        /// ALL_RAND—全部随机,商户指定总金额和红包发放总人数,由微信支付随机计算出各红包金额
        /// </summary>
        public string amt_type { get; set; }

        public SendGroupRedPackJson()
        {
            this.amt_type = "ALL_RAND";
        }
    }

结果对象类的代码如下所示。

/// <summary>
    /// 发送红包的返回结果
    /// </summary>
    public class SendRedPackResult : PayResult
    {
        /// <summary>
        /// 商户订单号
        /// </summary>
        public string mch_billno { get; set; }

        /// <summary>
        /// 商户appid,接口传入的所有appid应该为公众号的appid(在mp.weixin.qq.com申请的),不能为APP的appid(在open.weixin.qq.com申请的)。
        /// </summary>
        public string wxappid { get; set; }
        /// <summary>
        /// 接受收红包的用户 
        /// 用户在wxappid下的openid
        /// </summary>
        public string re_openid { get; set; }
        /// <summary>
        /// 付款金额,单位分
        /// </summary>
        public int total_amount { get; set; }
        /// <summary>
        /// 红包发送时间
        /// </summary>
        public string send_time { get; set; }
        /// <summary>
        /// 红包订单的微信单号
        /// </summary>
        public string send_listid { get; set; }
    }


这样,有了这些对象的代码,我们根据接口的说明,依旧遵循上篇随笔介绍的接口设计方式,实现裂变红包的代码处理。

C#开发微信门户及应用微信裂变红包




 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 详解php微信开发带参数二维码的使用说明
  • 详解微信个性化菜单开发模式
  • 自定义微信扫码登录样式的实现方法
  • C#微信开发系列-自定义菜单管理
  • 微信是如何用libco支撑8亿用户的
  • C# 微信公众号开发--准备工作
  • 使用require.js+vue开发微信上传图片组件方法
  • 分享微信公众号开发模板消息的实例教程
  • 微信公众账号开发者认证:uwsgi结合web.py的步骤详解
  • Force.com微信开发系列自定义菜单进阶及语音识别

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 实现类似微信中说话功能的录音处理代码实例
    • 微信公众平台开发:使用Senparc.Weixin.MP SDK
    • 微信开发的扫码登录处理的步骤详解
    • 分享微信公众号开发现金红包实例教程
    • 微信开发之获取access_token
    • filter使用案例总结
    • 微信开发平台开发初探
    • 微信公众平台消息接口开发 启用接口
    • ASP.NET实现QQ、微信、新浪微博OAuth2.0授权登录的实例详解
    • 自定义微信扫码登录样式的实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有