|
公司最近为政府部门做了一个禁毒日的答题送红包活动,市场的人问我一周工期,我信心满满的承诺下来工期,结果从此陷入大坑!! 现金红包竟然需要微信支付注册满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真的是炒鸡方便的!
|