付出微信门户及利用亚洲必赢app在哪下载

By admin in 亚洲必赢app在哪下载 on 2019年2月1日

自家在上篇随笔《C#开发微信门户及利用(32)–微信支付接入和API封装使用》介绍为微信支付的API封装及利用,其中介绍了什么布置好开发条件,并对扫码支付的三种艺术如何在C#付出中动用举办了介绍,本小说继续介绍微信支付的相关内容,介绍其中的微信现金红包和裂变红包的卷入和利用。

在上篇小说后,经过对总体微信框架的一应俱全和重构,已经做到了对微信支付、集团付款、现金红包、代金券及各类卡劵进行了打包完成,并把里面微信支付及摇一摇红包部分等情节作为群众号和商社号通用的部分,那个付出有关的接口在公众号和商家号内部,都可以拓展调用的,在经过一密密麻麻的优化整治后,把这一个情节逐条开展介绍,希望大家快乐帮忙。

1、现金红包的定义及利用

1)使用境况

微信支付现金红包向微信支付经纪人开发,具体能力如下:

◆ 商户调用接口时,通过点名发送对象以及发送金额的办法发给红包,那样的点子,允许商户灵活的采用于种种各个丰裕的移位现象

◆ 领取到红包后,用户的财力直接进入微信零钱,防止繁复的领奖流程,带给用户微信支付原生的流利体验

 

2)微信红包发送规则

出殡频率规则

◆ 每分钟发先生送红包数量不足当先1800个;

◆ 同一个商贩号,每分钟最多给同一个用户发送一个红包;

红包规则

◆ 单个红包金额介于[1.00元,200.00元]之间;


同一个红包只能够发送给一个用户;(若是上述规则不满意你的须要,请发邮件至wxhongbao@tencent.com获取升级指导)

◆ 红包发给后72钟头未被领取将开展退款

 

3) 微信红包接口调用流程

◆ 后台API调用:待进入联调进度时与开销举行详尽沟通;


告知服务器:告知服务器收到微信红包的用户openID,告知服务器该用户得到的金额;

◆ 从商务号扣款:服务器获取音信后从对应的商务号扣取对应的金额;


调用失败:因不适合发送规则,商务号余额不足等原因导致调用战败,反馈至调用方;

◆ 发送成功:以微信红包中丞众账号发送对应红包至对应用户;

亚洲必赢app在哪下载 1

2、 现金红包API接口的认证及C#的封装

用来集团向微信用户个人发现金红包,近年来支撑向指定微信用户的openid发放指定金额红包。

就算可以由此微信的商贩后台进行现金红包的发放,但大家也可以应用微信提供的接口API进行现金红包的殡葬。

接口调用请求表明

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

呼吁参数

字段名 字段 必填 示例值 类型 说明
随机字符串 nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 随机字符串,不长于32位
签名 sign C380BEC2BFD727A4B6845133519F3AD6 String(32) 详见签名生成算法
商户订单号 mch_billno 10000098201411111234567890 String(28)

商户订单号(每个订单号必须唯一)

组成:mch_id+yyyymmdd+10位一天内不能重复的数字。

接口根据商户订单号支持重入,如出现超时可再调用。

商户号 mch_id 10000098 String(32) 微信支付分配的商户号
公众账号appid wxappid wx8888888888888888 String(32) 微信分配的公众账号ID(企业号corpid即为此appId)。接口传入的所有appid应该为公众号的appid(在mp.weixin.qq.com申请的),不能为APP的appid(在open.weixin.qq.com申请的)。
商户名称 send_name 天虹百货 String(32) 红包发送者名称
用户openid re_openid oxTWIuGaIt6gTKsQRLau2M0yL16E String(32)

接受红包的用户

用户在wxappid下的openid

付款金额 total_amount 1000 int 付款金额,单位分
红包发放总人数 total_num 1 int

红包发放总人数

total_num=1

红包祝福语 wishing 感谢您参加猜灯谜活动,祝您元宵节快乐! String(128) 红包祝福语
Ip地址 client_ip 192.168.0.1 String(15) 调用接口的机器Ip地址
活动名称 act_name 猜灯谜抢红包活动 String(32) 活动名称
备注 remark 猜越多得越多,快来抢! String(256) 备注信息

数据示例:

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

地方是接口及输入参数的验证,一般意况下,大家须求依照这几个来控制怎样兑现C#代码的卷入,首先大家来定义大家需求的接口和类,如下所示。

亚洲必赢app在哪下载 2

透过分析上面的接口表达,大家得以窥见,其中接口有一部分是固定的正规参数,也就是相似民众号照旧商店号的身价新闻,有部分是事情参数,由此大家把它们各自分离出来,那样方便大家对接口的包装和行使,那么些健康的参数大家透过群众号身份获得就足以了,业务音信,大家可以定义一个实体类来进展多少的储存交流即可。

亚洲必赢app在哪下载 3

对应上图的永恒的常规参数,在接口表达中如下所示。

亚洲必赢app在哪下载 4

所以,这个新闻大家从账号里面安装及取得即可,大家得以在治本后台对它们举行配备,然后在代码逻辑之中取出来使用即可。

亚洲必赢app在哪下载 5

亚洲必赢app在哪下载 6

据悉上边的介绍,我们可以定义红包接口代码如下所示。

    /// <summary>
    /// 微信红包(摇一摇红包)操作API
    /// </summary>
    public interface ILotteryApi
    {              
        /// <summary>
        /// 用于企业向微信用户个人发现金红包。需要商户证书
        /// 目前支持向指定微信用户的openid发放指定金额红包。
        /// </summary>
        /// <returns></returns>
        SendRedPackResult SendRedPack(SendRedPackJson json);

内部的 SendRedPackJson
是大家转移的政工参数,大家定义了一个类来展开音讯的承前启后,方便想接口传递新闻。

    /// <summary>
    /// 现金红包和裂变红包的基础信息
    /// </summary>
    public class BaseRedPackJson
    {
        /// <summary>
        /// 接受红包的用户
        /// 用户openid    
        /// </summary>
        public string re_openid { get; set; }

        /// <summary>
        /// 付款金额,单位分
        /// </summary>
        public int total_amount { get; set; }

        /// <summary>
        /// 红包发放总人数
        /// </summary>
        public int total_num { get; set; }

        /// <summary>
        /// 红包祝福语
        /// </summary>
        public string wishing { get; set; }

        /// <summary>
        /// 活动名称
        /// </summary>
        public string act_name { get; set; }

        /// <summary>
        /// 备注信息
        /// </summary>
        public string remark { get; set; }
    }

    /// <summary>
    /// 发送红包的数据信息
    /// </summary>
    public class SendRedPackJson :BaseRedPackJson
    {
        /// <summary>
        /// 调用接口的机器Ip地址
        /// </summary>
        public string client_ip { get; set; }

        public SendRedPackJson()
        {
            this.total_num = 1;//红包发放总人数
        }
    }

据悉上边参数的定义,大家在现金红包的接口完成里面,具体代码如下所示,里面的逻辑内容,主要就是流传常规参数和事务参数两局地,然后调用接口的地址举行多少的交由(POST),获取再次回到结果并展开解析即可。

        /// <summary>
        /// 用于企业向微信用户个人发现金红包。需要商户证书
        /// 目前支持向指定微信用户的openid发放指定金额红包。
        /// </summary>
        /// <returns></returns>
        public SendRedPackResult SendRedPack(SendRedPackJson json)
        {
            CheckAccount();//检查AccountInfo的对象属性值

            //加入常规的参数
            WxPayData data = new WxPayData();
            data.SetValue("wxappid", AccountInfo.UniteAppId);//公众账号appid
            data.SetValue("mch_id", AccountInfo.MchID);//商户号
            data.SetValue("nonce_str", data.GenerateNonceStr());//随机字符串
            data.SetValue("send_name", AccountInfo.Name);//    红包发送者名称

            //商户订单号(每个订单号必须唯一) 组成:mch_id+yyyymmdd+10位一天内不能重复的数字。
            //接口根据商户订单号支持重入,如出现超时可再调用。
            data.SetValue("mch_billno", data.GenerateOutTradeNo(AccountInfo.MchID));

            data.SetValue("re_openid", json.re_openid);
            data.SetValue("total_amount", json.total_amount);
            data.SetValue("total_num", json.total_num);
            data.SetValue("wishing", json.wishing);
            data.SetValue("client_ip", json.client_ip);
            data.SetValue("act_name", json.act_name);
            data.SetValue("remark", json.remark);

            data.SetValue("sign", data.MakeSign(AccountInfo.PayAPIKey));//最后生成签名

            var url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack";
            return Helper.GetPayResultWithCert<SendRedPackResult>(data, url, AccountInfo.CertPath, AccountInfo.CertPassword);
        }

其间发送红包操作是要求申明的,因而要求添加对应的证书,证书是从微信的经纪人平台上展开下载的。

在商贩后台的【API安全】项目上下载证书供大家付出环境使用。

亚洲必赢app在哪下载 7

下载证书后,在Windows环境,我们一般必要双击安装,输入所需的商户号作为密码即可。

亚洲必赢app在哪下载 8

在代码里面,大家可以动用证书类举行添加

            HttpHelper helper = new HttpHelper();

            helper.ClientCertificates = new X509CertificateCollection();
            certPath = Path.Combine(System.Environment.CurrentDirectory, certPath);
            helper.ClientCertificates.Add(new X509Certificate2(certPath, certPassword));
            string response = helper.GetHtml(url, xml, true);

 

3、微信红包的应用结果

 例如,我们在测试例子里面调用代码如下所示。

                //现金红包
                SendRedPackJson packJson = new SendRedPackJson()
                {
                    act_name = "恭喜发财",
                    client_ip = NetworkUtil.GetIPAddress(),
                    remark = "企业红包",
                    wishing = "企业红包",
                    total_amount = 100,
                    total_num = 1,
                    re_openid = tosendOpenId //发送给用户的OpenID
                };
                var result = hbApi.SendRedPack(packJson);
                var message = string.Format("企业发送红包:{0} {1}", result.Success ? "成功" : "失败", result.Message);
                Console.WriteLine(message);
                Console.WriteLine(result.ToJson());

里面的hbApi是上面接口的协会,如下代码所示。

 AccountInfo  accountInfo = new AccountInfo()
    {
       Name = this.SendName,
        AppID = this.AppId,
        AppSecret = this.AppSecret,
        MchID = this.MchID,
        PayAPIKey = this.PayAPIKey,
        CertPath = this.CertPath,
        CertPassword = this.CertPassword,
         PayNotifyUrl = this.PayNotifyUrl
     };
 ILotteryApi hbApi = new LotteryApi(accountInfo);

水到渠成调用后,大家可以在公众号的对话里面看到红包的音讯结果,如下是整个红包发送及拆迁的进程。

亚洲必赢app在哪下载 9     
 亚洲必赢app在哪下载 10   
 亚洲必赢app在哪下载 11

 

如若对那几个《C#付出微信门户及使用》体系感兴趣,可以关切本身的其他文章,种类随笔如下所示:

C#开发微信门户及使用(36)–微信卡劵管理的包裹操作

C#付出微信门户及拔取(35)–微信支付之集团付款封装操作

C#付出微信门户及利用(34)–微信裂变红包

C#支出微信门户及使用(33)–微信现金红包的包装及利用

C#支出微信门户及选用(32)–微信支付接入和API封装使用

C#支付微信门户及利用(31)–微信语义明白接口的兑现和拍卖

C#支付微信门户及应用(30)–信息的群发处理和预览功用

C#支付微信门户及使用(28)–微信“摇一摇·周边”成效的应用和接口的兑现

C#支付微信门户及选取(27)-公众号模板新闻管理 

C#开发微信门户及利用(26)-公众号微信资料管理

C#付出微信门户及应用(25)-微信集团号的客户端管住职能

C#付出微信门户及采纳(24)-微信小店货架音信保管

C#支出微信门户及利用(23)-微信小店商品管理接口的包裹和测试

C#支付微信门户及应用(22)-微信小店的费用和动用

C#支付微信门户及采纳(21)-微信集团号的新闻和事件的收遍地理及解密亚洲必赢app在哪下载, 

C#支出微信门户及选择(20)-微信公司号的菜单管理

C#支出微信门户及运用(19)-微信公司号的新闻发送(文本、图片、文件、语音、摄像、图文音信等)

C#付出微信门户及拔取(18)-微信公司号的通信录管理支付之成员管理

C#付出微信门户及运用(17)-微信公司号的通讯录管理支付之部门管理

C#开发微信门户及利用(16)-微信公司号的安插和使用

C#付出微信门户及应用(15)-微信菜单伸张扫一扫、发图片、发地理地点功能

C#开发微信门户及使用(14)-在微信菜单中使用重定向获取用户数据

C#开发微信门户及使用(13)-使用地理地点扩大相关应用

C#开发微信门户及运用(12)-使用语音处理

C#付出微信门户及应用(11)–微信菜单的各个显示方法介绍

C#付出微信门户及应用(10)–在治本种类中一道微信用户分组信息

C#付出微信门户及使用(9)-微信门户菜单管理及提交到微信服务器

C#付出微信门户及运用(8)-微信门户应用管理种类机能介绍

C#支出微信门户及利用(7)-微信多客服效率及费用集成

C#支出微信门户及使用(6)–微信门户菜单的保管操作

C#支付微信门户及运用(5)–用户分组信息保管

C#开发微信门户及利用(4)–关切用户列表及详细音讯管理

C#开发微信门户及使用(3)–文本音讯和图文新闻的回应

C#开发微信门户及选择(2)–微信新闻的拍卖和回答

C#付出微信门户及利用(1)–起初应用微信接口

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 亚洲必赢app官方下载 版权所有