C#公众平台(三)—— 生成带参数的二维码

遇到了一个需求,就是要生成客户的专属二维码,要求扫码后能关注订阅号,并且将每个扫码的人和这个二维码所属客户绑定,但是系统用的是商户号,商户号不能绑定订阅号,这就存在了怎么确认是同一个客户的问题。
生成带参数的二维码文档
基础帮助类

unionid 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。
微信官方提供了unionid,在同一个账号主体下,unionid是一样的,前提是需要在开放平台绑定公众号或者小程序,在开放平台认证需要300块人民币。这样在返回用户信息的时候就会返回unionid,如果没有在开放平台绑定,返回的unionid为空。
认证有效期:一年,有效期最后三个月可申请年审即可续期 审核费用:中国大陆地区:300元,非中国大陆地区:120美元

查了下文档,得出一个方案:A是订阅号,B是商户号绑定的服务号,关注A后得到openid,然后获取unionid, 存入系统,之后在B系统登录注册后根据unionid判断是否是同一个人,之后openid绑定到系统账户,当然用unionid也可以,但是之前系统用的是openid,为了减少耦合,就保持原样。

创建二维码的底层方法

public class WxPlatformApi
    {
        /**
        * 
        * 创建二维码ticket https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542
        * @param string access_token 调用公众号接口令牌
        * @param WxPaydata inputObj 提交给生成二维码API的参数
        * @param int timeOut 超时时间
        * @throws WxPayException
        * @return 成功时返回,其他抛异常
        */
        public static WxPayData CreateQRCodeTicket(string access_token, WxPayData inputObj, int timeOut = 6)
        {
            if (string.IsNullOrWhiteSpace(access_token))
            {
                throw new Exception("缺少统一支付接口必填参数out_trade_no!");
            }

            string url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + access_token;
            //检测必填参数

            if (!inputObj.IsSet("action_name"))
            {
                throw new Exception("缺少创建二维码ticket接口必填参数action_name!");
            }
            else if (!inputObj.IsSet("action_info"))
            {
                throw new Exception("缺少创建二维码ticket接口必填参数action_info!");
            }

            string xml = inputObj.ToJson();

            // Log.Debug("WxPayApi", "UnfiedOrder request : " + xml);
            string response = HttpService.PostByJson(xml, url, false, timeOut);
            //Log.Debug("WxPayApi", "UnfiedOrder response : " + response);

            WxPayData result = new WxPayData();
            result.FromJSON(response);

            return result;
        }

        /**
        * 
        * 获取用户基本信息(包括UnionID机制) https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839
        * @param WxPaydata inputObj 提交给生成二维码API的参数
        * @param int timeOut 超时时间
        * @throws WxPayException
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值