【每周一文】实现文章转发朋友圈后自动下发红包功能

写在前面

和美女同事 Aimee 一起吃火锅,Aimee 抱怨说今天微信群里推广的红包很快都被抢空了,但效果并不理想。花了很长时间,挨个查看了下朋友圈,发现好多抢红包的朋友并没有分享软文。

我们经常在微信群看到类似的的推广情况,发红包,求扩散。但效果大不尽人意。如何破?

如何做

同样,Aimee 也问我如何破。

「可不可以实现扩散后系统自动下发红包呢?这样就解决了抢红包不分享文章的问题。从而实现红包的效益的最大化。」 Aimee 问道。

好想法,那么如何实现呢?好吧,程序员思维又来了,一谈到具体问题,马上去联想如何实现。

分析

拿到这个问题,我们先来简单从技术角度分解一下。

要实现微信转发指定文章就可以收到系统下发红包的功能,我们需要搞定以下内容:

第一、我们需要知道是分享用户是谁,微信公众号的静默授权可以在用户无感知的状态下拿到 openid

第二、我们要捕获到用户分享事件,微信的 JS-SDK 可以捕捉到分享事件

第三、发红包,微信有发送红包的接口,有了 openid,发红包就差钱了~~

实现

思路有了,实现起来就很简单了。我们根据微信现金红包文档 操作指导 把前期工作准备好。

1、准备好公众号

2、安装 laravel 框架

3、安装 easywechat skd

这三个东西准备好后,就可以快速实施了,这里不得不提一下 easywechat 让微信开发更简单,真不是一句空话。

开始撸代码,假设我们已经拿到 openid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
class LuckyMoneyController extends Controller
{
private $config = [
'app_id' => 'your-app_id', // AppID
'secret' => 'your-secret', // AppSecret
'token' => 'your-token', // Token
'aes_key' => '', //
'oauth' => [
'scopes' => ['snsapi_base'],
'callback' => '',//授权跳转回调
],
/**
* 微信支付
*/
'payment' => [
'merchant_id' => 'your-merchant_id',
'key' =>'key',
'cert_path' => '/**/apiclient_cert.pem', //
'key_path' => '/**/apiclient_key.pem', //
],
'guzzle' => [
'timeout' => 3.0, // 超时时间(秒)
//'verify' => false, // 关掉 SSL 认证(强烈不建议!!!)
]
];



public function __construct()
{


}



/**
* 发普通红包
* @param Request $request [description]
* @return [type] [description]
*/
public function getNormal(Request $request)
{
$app = new Application($this->config);
$luckyMoney = $app->lucky_money;

$luckyMoneyData = [
'mch_billno' => Strings::buildOrder(),
'send_name' => '助力小B',
're_openid' => '**********',
'total_num' => 1, //普通红包固定为1,裂变红包不小于3
'total_amount' => 100, //单位为分,普通红包不小于100,裂变红包不小于300
'wishing' => '感谢你助力小B机器人推广活动',
'client_ip' => '127.0.0.1', //可不传,不传则由 SDK 取当前客户端 IP
'act_name' => '助力小B机器人',
'remark' => '小B机器人推广活动,普通红包',
// ...
];


$result = $luckyMoney->send($luckyMoneyData, \EasyWeChat\Payment\LuckyMoney\API::TYPE_NORMAL);

return $result;


}
}
?>

撸完收工,是的,工具用对了,就是这么简单~

浏览器输入 ***/lucky/normal 微信已经收到红包了,有图有真相

红包

扩展

「那么可不可以追踪到是谁帮我推广了软文,谁的盆友圈推广效果更佳呢。」 Aimee 又问道。

当然可以,我们可以已经知道了如下信息

1、上一个分享者的 openid

2、当前分享者的 openid

3、分享到朋友圈还是微信群

4、被分享的网页被点击了多少次,都是来自什么分享。比如 朋友圈是 ?from=timeliness,群聊天是 ?from=groupMessage,个人聊天是 ?from=singleMessage

拿到以上信息,对于微信分享信息的追踪就可以实现,可以根据数据,实现不同的分享奖励措施