最近有个项目增加导游引流功能,因为项目只用的小程序,没有使用公众号,没法用”现金红包“功能,开通商家转账到零钱需要7-14天才能申请下来,暂时先用小程序红包顶上,一路都是坑啊,特此记录下。
先开下具体效果,点击领取佣金=>生成红包=>领取红包
废话不多说,开始走起
1、开通(省略)
2、向运营账户中充值(开始以为可以用账户金额了,自己想多了,说明微信想的多么周到)
3、以用户OpenID为基础生成一个红包,然后在前端直接领取, 所以有两个流程 一个是生成红包,一个是领取红包。
4、具体实现(根据实际情况进行设计,我们的项目是凌晨对前一天的订单进行结算,结算完导游就能进行领取了,我这里是前端小程序进行的生成和领取的,这个要根据实际业务来设计)
5、部分代码(.net core)
生成红包
[HttpPost]
public async Task<ActionResult> SendMiniProgramhb(string openid,string billno,decimal amount)
{
try
{
string url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendminiprogramhb";
string nonce_str = WXPay.GetNoncestr();
string total_amount = (Math.Round((decimal)amount * 100, 0)).ToString();
//参与统一下单签名的参数,除最后的key外,已经按参数名ASCII码从小到大排序
string unifiedorderSignParam = string.Format("act_name={0}&mch_billno={1}&mch_id={2}&nonce_str={3}¬ify_way={4}&re_openid={5}&remark={6}&send_name={7}&total_amount={8}&total_num={9}&wishing={10}&wxappid={11}&key={12}"
, "导游分佣", billno, MCH_ID, nonce_str, "MINI_PROGRAM_JSAPI",openid, "导游分佣", "xxx", total_amount,"1", "感谢您的付出!",APP_ID, KEY);
//MD5加密并将结果转换成大写
string unifiedorderSign =WXPay.GetMD5(unifiedorderSignParam).ToUpper();
//获取统一的下单的请求参数
string param = string.Format(@"<xml>
<act_name>导游分佣</act_name>
<mch_billno