配置:
1、进入商户平台 在产品中心找到小程序红包 开通小程序红包功能
2、开通后在左边的<span style="font-size: 12px; color: rgb(34, 34, 34);">APPID授权管理中关联该小程序APPID</span>
3、进入小程序后台 在功能==》微信支付中确认关联并授权
4、回到商户平台<span style="font-size: 12px; color: rgb(34, 34, 34);">APPID授权管理中</span>确认关联
5、这是最容易忽略的一点 __在商户平台 产品中心 小程序红包的产品设置中 拉到最下面 小程序红包权限中开通该小程序的红包功能__
到此小程序红包配置完成
开发:
发送红包
var mdhbhe = Convert.ToInt32(fee \* 100);
string mch_billno = mdminihb.Mch_id + DateTime.Now.ToString(“yyyyMMdd”) + GenerateNonceStr();
WxPayData hb = new WxPayData();
hb.SetValue(“act_name”, mdminihb.Act_name);//活动名称
hb.SetValue(“mch_billno”, mch_billno);//单号
hb.SetValue(“mch_id”, mdminihb.Mch_id);//发送红包的商户号
hb.SetValue(“nonce_str”, GenerateNonceStr());
hb.SetValue(“notify_way”, “MINI_PROGRAM_JSAPI”);
hb.SetValue(“re_openid”, openid);
hb.SetValue(“remark”, mdminihb.Remark);
hb.SetValue(“send_name”, mdminihb.Send_name);//商户名称
hb.SetValue(“total_amount”, mdhbhe);//红包金额 单位分
hb.SetValue(“total_num”, 1);//红包数量
hb.SetValue(“wishing”, mdminihb.Wishing);//祝福语
hb.SetValue(“wxappid”, mdminihb.Wxappid);//绑定在商户的小程序的appid 不是公众号的
hb.SetValue(“scene_id”, mdminihb.Scene_id);
var sign = hb.MakeSign2(mdminihb.Mch_key);//商户秘钥
hb.SetValue(“sign”, sign);
string xml = hb.ToXml();
string response = HttpService.HbPost(xml, url, true, 6, mdminihb.Mch_path, mdminihb.Mch_certkey);
WxPayData result = new WxPayData();
result.FromXml(response);//将xml格式的结果转换为对象以返回
var package = “”;
if (result.GetValue(“return_code”).ToString() == “SUCCESS” && result.GetValue(“result_code”).ToString() == “SUCCESS”)
{
//这边是成功后返回的代码 具体逻辑判断自己处理
package = result.GetValue("package").ToString();//成功后返回的
package = HttpUtility.UrlEncode(package);
__ //这是用于领取红包的代码__
WxPayData inputObj = new WxPayData();
inputObj.SetValue(“appId”, mdminihb.Wxappid);//这边是小程序的appId 这个appId 一定要记住 I要大写
inputObj.SetValue(“timeStamp”, timeStamp);
inputObj.SetValue(“nonceStr”, nonceStr);
inputObj.SetValue(“package”, package);
var paySign = inputObj.HBMakeSign(mdminihb.Mch_key);//商户秘钥
}
签名方法: public string MakeSign2(string key)
{
//转url格式
string str = ToUrl();
//在string后加入API KEY
str += “&key=” + key + “”;
var rd = Md5.md5(str, 32);
// 所有字符转为大写
return rd.ToUpper();
}
还有记得带证书
写的比较笼统 有不清楚的再补充
补充说明1:目前小程序红包仅支持用户微信扫码打开小程序,进行红包领取。(场景值1011,1025,1047,1124,小程序场景值详情参见文档 这个条件一定要注意 所以特别注意一定要通过wx.getLaunchOptionsSync()先看下场景值对不对 特别说明 体验版的二维码是无法领取红包的(第三方的要注意)
补充说明2:第二次领取红包的签名不需要大写