太年轻,原来订阅号发红包也可以这么灵活

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 00:29   11   0

公司最近为政府部门做了一个禁毒日的答题送红包活动,市场的人问我一周工期,我信心满满的承诺下来工期,结果从此陷入大坑!!

现金红包竟然需要微信支付注册满90天,而且还要一个月连续流水!看到这里心哇凉哇凉的。

更坑的是,政府那边扔过来公众号,一看竟然是订阅号。。。

不过也怪我了,谁让我这么年轻。这就一周的时间,怎么搞。。 百度了一下相关解决方案,看到聚分云支持代发红包,注册体验了一下,发放效果还不错。


提供API,还可以免费对接试用,我们用的是PHP。下面整理一下使用【PHP 】对接聚分云代发红包API的代码:

$params = [
    'appkey'=>'appkey',
    'method'=>'jfy.redpacks.send',
    'openid'=>'openid',
    'money'=>30
];
$res = Http::post('https://www.jufenyun.com/openapi/gateway',$params);
print_r($res['body']);

提供一个HTTP请求类

<?php
namespace App\Network;
 
class Http{
    public static $timeout = 60;
    public static $headers = [];
    public static function post($url,$data = ''){
        return static::curl($url,$data,'post');
    }
    public static function get($url,$data = ''){
        if(is_array($data)){
            $arr = [];
            foreach ($data as $k=>$v){
                $arr[] = $k.'='.$v;
            }
            $query = implode('&', $arr);
            $url = $url.'?'.$query;
        }
        return static::curl($url,$data,'get');
    }
    protected static function curl($url,$data = '',$method = 'post') {
        $SSL = substr($url, 0, 8) == "https://" ? true : false;
        $ch = curl_init();
        $options = [
            CURLOPT_URL=>$url,//设置请求url
            CURLOPT_TIMEOUT=>  static::$timeout,
            CURLOPT_CUSTOMREQUEST=>strtoupper($method),//设置请求方法
            CURLOPT_RETURNTRANSFER=>1//获取页面内容,不直接输出到页面,而是返回
        ];
        //设置headers
        if(!empty(static::$headers)) {
            $options[CURLOPT_HTTPHEADER] = static::$headers;
        }
        if ($SSL) {
            $options[CURLOPT_SSL_VERIFYPEER] = false; // 信任任何证书
            $options[CURLOPT_SSL_VERIFYHOST] = 2; // 检查证书中是否设置域名
        }
        $options[CURLOPT_POSTFIELDS] = $data;
        curl_setopt_array($ch, $options);
 
        $res['body'] = curl_exec($ch);
        $res['request']['params'] = $data;
        $res['request']['url'] = $url;
        $res['env'] = curl_getinfo($ch);
        $res['code'] = $res['env']['http_code'];
        curl_close($ch);
        return $res;
    }
}

接口返回:

{"code":0,"redpack_sn":"201806276147485200","redpack_url":"https:\/\/www.jufenyun.com\/ticket\/a283YRl3IH0UAjs2BfGA5lJUuiaaHLmk"}

通过PHP的json_decode,就可以把返回的json字符串转化为对象

$result = json_decode($res['body']);
 
// 红包链接
$redpack_url = $result->redpack_url;

然后把链接发送给粉丝,我使用的是模板消息,easywechat。

$app->template_message->send([
        'touser' => 'user-openid',
        'template_id' => 'template-id',
        'url' =>$redpack_url,
        'data' => [
            'key1' => 'VALUE',
            'key2' => 'VALUE2',
            ...
        ],
    ]);

这样就告知用户点击消息领取红包了。其实用客服消息也可以的。或者发送客服消息。看自己的需要了。

这样就很轻松的实现了订阅号发红包的功能。无论是答题送红包,还是抽奖送红包等,对于订阅号来说,这个代发红包API真的是炒鸡方便的!



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP