本帖最后由 cf_ihuyi 于 2016-6-28 10:13 编辑
目的 无论是签名还是微信登录,都是为了加强安全性,防止被刷奖,将被刷奖的可能性降低。
2种方式区别 微信登录:当应用或系统限定于微信内使用则可以选择微信登录,这也是最为常见的方式,通常不需要开发即可使用。 签名登录:当应用想要更强的兼容性或限定于APP内,PC端,不止在微信内使用则可以选择此登录方式,当然也可以在微信内使用。签名生成代码工作量非常少,通常10行以内代码即可搞定。
用户唯一性判定方式 同一活动中,同一微信openid或签名id 与手机号码绑定,是一对一关系,同样微信号或同样签名id算作一个用户,手机号码不可重复。
选择建议
- 微信是个非常好的传播渠道,没有特别需要,直接使用此方式会更便捷和快速以及更好传播(可以不需要开发);
- 关注微信公众号之类的活动,首选微信登录;
- APP内活动则可以使用签名登录;
- PC端站点活动首选签名登录;
- 确保用户必须满足一定的资格才能参与活动则可以选择签名登录;
签名应用场景举例
- 充值满1000元拥有1次抽奖机会;
- 实名验证之后拥有1次抽奖机会;
- 绑定银行卡之后才能拥有1次抽奖机会;
- 用户级别达到3级拥有1次抽奖机会;
- 微信用户是已关注了微信公众号拥有1次抽奖机会;
- ……
注意: 目前只提供1次抽奖机会,若需要对同一用户提供多次抽奖机会,请与我们沟通。
签名生成方式说明
传递参数: id:标识id nonce:随机数 timestamp:时间戳(数值型,允许 10 分钟 统一以东 8 时间,格式如:1420045261) sign:签名
加密方式:对参数按照key=value的格式,并按照参数名ASCII字典序排序并拼接项目密钥。
$string = "id=$id&nonce=$nonce&secret=密钥×tamp=$timestamp"; $sign=sha1($string);
则传递如:
返回错误码 1001:缺少关键参数如:id nonce timestamp sign 1002:签名过期,目前为10分钟 1003:签名验证错误
更多功能 当传递参数cid时,若选择『流量券』方式,则任务链接会自动加上传递的参数 |