微信支付为什么没有微信摇一摇红包包

2017微信“摇一摇”红包活动即将取消是真的吗 - 维维软件园
2017微信“摇一摇”红包活动即将取消是真的吗
来源:维维整理作者:维维时间: 14:30:07(0)
2017微信&摇一摇&红包活动即将取消是真的吗?每年的春节,微信红包都是被大家欢迎的一个活动,但是今天还会不会有红包活动,我们一起来看看吧。
在今天的腾讯大学微信公开课Pro版演讲当中,腾讯公司高级副总裁、微信之父张小龙表示,今年春节可能不会有微信红包活动,因为&摇一摇&红包已经完成了它的使命。
张小龙表示,微信只是一个工具,希望在春节当中微信的使用者能够有更多的时间陪伴家人,微信作为一款工具在设计上追求更高的效率。由此来看在今年微信或许会采用新的春节活动取代之前的红包活动。
摇一摇红包,是微信在2016年春节期间研发出的一种互动方式。打开微信摇一摇功能,就有机会摇到现金红包。这也引发了用户&摇动手机&的大战,依靠绑定银行卡才能提取红包,微信也获得了大量的移动支付用户。
大家还看了:
[访问统计:]
上一篇:下一篇:C#开发微信门户及应用(38)--微信摇一摇红包功能 - 简书
C#开发微信门户及应用(38)--微信摇一摇红包功能
摇一摇周边红包接口是为线下商户提供的发红包功能。用户可以在商家门店等线下场所通过摇一摇周边领取商家发放的红包。我曾经在《》介绍过微信摇一摇的相关管理,包括页面、设备之间的关系,以及使用等方面内容。本篇继续介绍摇一摇设备的另外一项功能,摇一摇红包功能,介绍如何利用微信摇摇周边的后台配置好页面及地址,然后通过微信JSSDK的方式,摇一摇获取红包的整个流程功能。
1、微信摇一摇红包功能介绍
摇一摇周边红包接口是为线下商户提供的发红包功能。用户可以在商家门店等线下场所通过摇一摇周边领取商家发放的红包,在线上转发分享无效。
开发者可通过接口开发摇一摇红包功能,特点包括:
可选择使用模板加载页或自定义Html5页面调起微信原生红包页面(详见创建红包活动中use_template字段,1为使用模板,2为使用自定义Html5页面)
原生红包页面拆红包,无需通过公众号消息下发
提供关注公众号能力,用户可自行选择是否关注(裂变红包分享时无效)
完成页面可配置跳转链接,可跳转商户的其他自定义Html5页面
同一个用户在单个红包活动中只能领取1次红包
用户侧交互流程
常规的摇一摇红包的流程如下所示,这里没有使用用户自定义的模板,也就是使用系统内置的(努力加载中。。。)的页面,红包需要自己拆开。
红包组件接口调用流程
申请红包接口权限:登录摇一摇周边商户后台 ,进入开发者支持,申请开通摇一摇红包组件接口;
红包预下单:调用微信支付的api进行红包预下单,告知需要发放的红包金额,人数,生成红包ticket;
创建活动并录入红包信息:调用摇周边平台的api录入创建红包活动并录入信息,传入预下单时生成的红包ticket;
调用jsapi抽红包:在摇出的页面中通过调用jsapi抽红包,抽中红包的用户可以拆红包;
调用以上接口时,红包提供商户和红包发放商户公众号要求一致。
摇一摇红包的处理过程可以先的流程说明,申请权限后,需要在摇一摇后台配置相关的红包处理页面,然后通过红包接口处理提交红包数据,最后通过摇一摇的设备摇出界面,使用JSAPI实现抽取红包的操作,具体过程如下所示。
其中红包接口处理,是调用一系列的红包接口实现的,包括红包预下单、创建红包活动、录入红包信息等操作,如下所示。
摇一摇红包功能开通在后台获取接口即可,如下所示。
假设已经有相关的摇一摇设备(如果没有或者需要加入新的摇一摇设备,请参考上篇随笔《》的相关介绍,有了设备后在页面管理中添加一个页面,用来处理摇一摇的信息的。
页面的信息,就是添加自定义链接界面,如下所示。
然后配置好URL地址接口,URL地址还需要考虑如何获取用户的openid,因为摇一摇红包接口必须要获得当前用户的openid信息,我们可以通过重定向的方式,使用code获取对应的openid信息,具体后面详细介绍。
2、红包接口处理
前面介绍了,红包接口处理,是调用一系列的红包接口实现的,包括红包预下单、创建红包活动、录入红包信息等操作,如下所示。
那么我们就需要分别对这些操作进行封装,并提交相关的数据了。
根据前面随笔《》里面的规则,我们把摇一摇的相关接口也放在这个ILotteryApi接口和LotteryApi实现类里面,如下所示。
下面的摇一摇红包接口全部是基于上面的接口和实现类进行完善处理的。
1)红包预下单
设置单个红包的金额,类型等,生成红包信息。预下单完成后,需要在72小时内调用jsapi完成抽红包的操作。(红包过期失效后,资金会退回到商户财付通帐号。)
接口调用说明
服务器端调用
http请求方式: POST
https://api.mch.weixin.qq.com/mmpaymkttransfers/hbpreorder
POST数据格式:XML
需要商户证书
&sign&&![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]&&/sign&
&mch_billno&&![CDATA[6545]]&&/mch_billno&
&mch_id&&![CDATA[]]&&/mch_id&
&wxappid&&![CDATA[wxcbda96de0b165486]]&&/wxappid&
&send_name&&![CDATA[send_name]]&&/send_name&
&hb_type&&![CDATA[NORMAL]]&&/hb_type&
&auth_mchid&&![CDATA[]]&&/auth_mchid&
&auth_appid&&![CDATA[wx7777777]]&&/auth_appid&
&total_amount&&![CDATA[200]]&&/total_amount&
&amt_type&&![CDATA[ALL_RAND]]&&/amt_type&
&total_num&&![CDATA[3]]&&/total_num&
&wishing&&![CDATA[恭喜发财 ]]&&/wishing&
&act_name&&![CDATA[ 新年红包 ]]&&/act_name&
&remark&&![CDATA[新年红包 ]]&&/remark&
&risk_cntl&&![CDATA[NORMAL]]&&/risk_cntl&
&nonce_str&&![CDATA[50780e0cca98c8c8ecaa672e]]&&/nonce_str&
返回数据说明
返回格式为xml
&return_code&&![CDATA[SUCCESS]]&&/return_code&
&return_msg&&![CDATA[发放成功.]]&&/return_msg&
&result_code&&![CDATA[SUCCESS]]&&/result_code&
&err_code&&![CDATA[0]]&&/err_code&
&err_code_des&&![CDATA[发放成功.]]&&/err_code_des&
&mch_billno&&![CDATA[6545]]&&/mch_billno&
&mch_id&&/mch_id&
&wxappid&&![CDATA[wx6fa7e3bab7e15415]]&&/wxappid&
&sp_ticket&&![CDATA[0cca98c8c8e814883]]&&/sp_ticket&
&total_amount&3&/total_amount&
&detail_id&&![CDATA[888]]&&/detail_id&
&send_time&&![CDATA[00]]&&/send_time&
&return_code&&![CDATA[FAIL]]&&/return_code&
&return_msg&&![CDATA[系统繁忙,请稍后再试.]]&&/return_msg&
&result_code&&![CDATA[FAIL]]&&/result_code&
&err_code&&![CDATA[]]&&/err_code&
&err_code_des&&![CDATA[系统繁忙,请稍后再试.]]&&/err_code_des&
&mch_billno&&![CDATA[6542]]&&/mch_billno&
&mch_id&&/mch_id&
&wxappid&&![CDATA[wx6fa7e3bab7e15415]]&&/wxappid&
&total_amount&3&/total_amount&
根据请求参数的说明,以及返回的结果,我们可以分别定义它们的传入参数和传出参数,具体的红包预下单的接口定义如下
/// &summary&
/// 红包预下单接口。需要商户证书
/// 设置单个红包的金额,类型等,生成红包信息。预下单完成后,需要在72小时内调用jsapi完成抽红包的操作。(红包过期失效后,资金会退回到商户财付通帐号。)
/// &/summary&
/// &param name="data"&传入参数数据&/param&
/// &returns&&/returns&
LotteryPreOrderResult LotteryPreOrder(LotteryPreOrderData info);
其中LotteryPreOrderResult返回的对象结果如下所示,主要的信息是要记录sp_ticket,目前没有通过API接口获取已经预下单红包的sp_ticket信息,所以一定要先记录好,后面在录入红包的时候,需要使用到这个票据。
public class LotteryPreOrderResult : PayResult
/// &summary&
/// 商户订单号
/// &/summary&
public string mch_billno { }
/// &summary&
/// 公众账号appid
/// &/summary&
public string wxappid { }
/// &summary&
/// 总付款金额,单位分
/// &/summary&
public int total_amount { }
/// &summary&
/// 一个普通红包对应一个ticket
/// &/summary&
public string sp_ticket { }
/// &summary&
/// 红包内部订单号
/// &/summary&
public string detail_id { }
/// &summary&
/// 红包发放时间
/// &/summary&
public string send_time { }
2)创建红包活动
创建红包活动,设置红包活动有效期,红包活动开关等基本信息,返回活动id
接口调用说明
服务器端调用http请求方式: POST
URL: ”LOGO_URL”
请求参数说明
access_token
accesstoken,以参数的形式拼装在url后
use_template
是否使用模板,1:使用,2:不使用,以参数的形式拼装在url后。(模版即交互流程图中的红包加载页,使用模板用户不需要点击可自动打开红包;不使用模版需自行开发HTML5页面,并在页面调用红包jsapi)
使用模板页面的logo_url,不使用模板时可不加。展示在摇一摇界面的消息图标。图片尺寸为120x120。
POST BODY:JSON格式的结构体,具体信息不在赘述,不过值得说明的是其中的Key是需要注意的,这个值一定需要使用一个确定的值,因为需要和后面的抽取红包的签名处理一致,否则会出错无法抽取红包。
Content-Type: application/json Post Body:
"title": "title",
"desc": "desc",
"onoff": 1,
"begin_time": ,
"expire_time": ,
"sponsor_appid": "wxxxxxxxxxxxxxx",
"total": 10,
"jump_url": JUMP_URL,
"key": "keyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
返回数据说明
"errcode":0,
"errmsg":"",
"lottery_id":"xxxxxxllllll",
"page_id":1,
根据上面的接口定义和接口参数说明,我们可以定义创建红包活动的接口定义,如下所示
/// &summary&
/// 创建红包活动,设置红包活动有效期,红包活动开关等基本信息,返回活动id
/// &/summary&
/// &param name="accessToken"&调用接口凭证&/param&
/// &param name="useTempate"&是否使用模板&/param&
/// &param name="login_url"&使用模板页面的logo_url,不使用模板时可不加。展示在摇一摇界面的消息图标。图片尺寸为120x120。&/param&
/// &returns&&/returns&
AddLotterResult AddLotteryInfo(string accessToken, bool useTempate, string login_url, AddLotteryJson json);
其中AddLotteryResult为我们定义的接口处理结果,主要需要记录其中的LotteryID,这个值需要在后面的录入红包接口使用到。
/// &summary&
/// 添加红包活动的结果
/// &/summary&
public class AddLotterResult : ErrorJsonResult
/// &summary&
/// 生成的红包活动id
/// &/summary&
public string lottery_id { }
/// &summary&
/// 生成的模板页面ID
/// &/summary&
public int page_id { }
3)录入红包信息
在红包预下单,以及创建红包活动后,就需要把前面两者的信息关联起来,这个操作就是录入红包信息,录入红包信息包括提交红包活动的ID,以及红包预下单的sp_ticket的票据信息,这样就可以让用户抽取具体的红包信息了。
在调用"创建红包活动"接口之后,调用此接口录入红包信息。注意,此接口每次调用,都会向某个活动新增一批红包信息,如果红包数少于100个,请通过一次调用添加所有红包信息。如果红包数大于100,可以多次调用接口添加。请注意确保多次录入的红包ticket总的数目不大于创建该红包活动时设置的total值。
接口调用说明
服务器端调用http请求方式: POST
POST BODY:JSON格式的结构体
Content-Type: application/json Post Body:
"lottery_id": "xxxxxxllllll",
"mchid": "",
"sponsor_appid": "wx8888"
"prize_info_list": [
"ticket": "v1|ZiPs2l0hpMBp3uwGI1rwp45vOdz/V/zQ/00jP9MeWT+e47/q1FJjwCIP34frSjzOxAEzJ7k2CtAg1pmcShvkChBWqbThxPm6MBuzceoHtj79iHuHaEn0WAO+j4sXnXnbGswFOlDYWg1ngvrRYnCY3g==",
返回数据说明
"errcode":0,
"errmsg":"",
"repeat_ticket_list":[
"ticket": "v1|ZiPs2l0hpMBp3uwGI1rwp45vOdz/V/zQ/00jP9MeWT+e47/q1FJjwCIP34frSjzOxAEzJ7k2CtAg1pmcShvkChBWqbThxPm6MBuzceoHtj79iHuHaEn0WAO+j4sXnXnbGswFOlDYWg1ngvrRYnCY3g==",
"success_num":100
根据这些接口定义和传递参数信息,我们可以定义录入红包的接口。
/// &summary&
/// 录入红包信息
/// 在调用"创建红包活动"接口之后,调用此接口录入红包信息。
/// 注意,此接口每次调用,都会向某个活动新增一批红包信息,如果红包数少于100个,请通过一次调用添加所有红包信息。
/// 如果红包数大于100,可以多次调用接口添加。请注意确保多次录入的红包ticket总的数目不大于创建该红包活动时设置的total值。
/// &/summary&
/// &param name="accessToken"&调用接口凭证&/param&
/// &param name="json"&录入红包信息&/param&
/// &returns&&/returns&
SetPrizeBucketResult SetPrizeBucket(string accessToken, SetPrizeBucketJson json);
其中录入红包返回的结果类SetPrizeBucketResult 定义如下所示。
/// &summary&
/// 录入红包返回的结果
/// &/summary&
public class SetPrizeBucketResult : ErrorJsonResult
/// &summary&
/// 重复使用的ticket列表,如为空,将不返回
/// &/summary&
public List&PrizeTicket& repeat_ticket_list { }
/// &summary&
/// 过期的ticket列表,如为空,将不返回
/// &/summary&
public List&PrizeTicket& expire_ticket_list { }
/// &summary&
/// 金额不在大于1元,小于1000元的ticket列表,如为空,将不返回
/// &/summary&
public List&PrizeTicket& invalid_amount_ticket_list { }
/// &summary&
/// 原因:生成红包的时候,授权商户号auth_mchid和auth_appid没有写摇周边的商户号
/// &/summary&
public List&PrizeTicket& wrong_authmchid_ticket_list { }
/// &summary&
/// ticket解析失败,可能有错别字符或不完整
/// &/summary&
public List&PrizeTicket& invalid_ticket_list { }
/// &summary&
/// 成功录入的红包数量
/// &/summary&
public int success_num { }
3、红包接口的使用及JSAPI的摇一摇页面处理
前面说明了相关的接口信息和对应的结果类的定义,我们具体在根据相关的说明,实现接口的处理就可以了,这个小节介绍如何使用这些接口,实现我们对摇一摇红包的整个流程的处理。
如第一步,调用红包预下单处理。
string sp_ticket = "";
/// &summary&
/// 红包预下单,并记录红包的ticket信息
/// &/summary&
private void btnHbPreOrder_Click(object sender, EventArgs e)
LotteryPreOrderData info = new LotteryPreOrderData()
total_amount = 100,
total_num = 1,
act_name = "恭喜发财",
remark = "恭喜发财",
wishing = "恭喜发财",
var result = hbApi.LotteryPreOrder(info);
sp_ticket = result.sp_//赋值,方便下面的录入红包操作
Console.WriteLine(XmlConvertor.FormatXml(result.ToXml()));
第二部创建红包活动,如下所示。
string lotteryId = "";
/// &summary&
/// 创建红包活动,并记录活动的ID
/// &/summary&
private void btnCreateLottery_Click(object sender, EventArgs e)
AddLotteryJson json = new AddLotteryJson()
begin_time = DateTime.Now.DateTimeToInt(),
expire_time = DateTime.Now.AddDays(90).DateTimeToInt(),
title = "测试红包",
desc = "测试红包",
sponsor_appid = this.AppId,
onoff = 1,
total = 1,
jump_url = "http://www.iqidi.com",
key = accountInfo.PayAPIKey
var result = hbApi.AddLotteryInfo(token, false, null, json);
lotteryId = result.lottery_//赋值方便查询红包
Console.WriteLine(result.ToJson());
第三步,根据红包预下单结果和红包活动创建结果,录入红包信息
/// &summary&
/// 录入红包信息,供使用摇一摇页面处理
/// &/summary&
private void btnSetHB_Click(object sender, EventArgs e)
if (string.IsNullOrEmpty(sp_ticket))
MessageUtil.ShowError("红包票据ticket为空");
SetPrizeBucketJson json = new SetPrizeBucketJson()
lottery_id = lotteryId, //使用前面的红包活动
mchid = accountInfo.MchID,
sponsor_appid = accountInfo.AppID,
prize_info_list = new List&PrizeTicket&()
new PrizeTicket() { ticket = sp_ticket},//使用前面的红包预下单ticket
var result = hbApi.SetPrizeBucket(this.token, json);
Console.WriteLine("录入红包的结果:");
Console.WriteLine(result.ToJson());
第四步,配置好重定向的页面,方便获取用户的openid
1)用户同意授权,获取code
这个步骤,我们利用的是“网页授权获取用户基本信息”操作,其中相关的信息说明如下所示。
在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面:
若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。
尤其注意:由于授权操作安全等级较高,所以在发起授权请求时,微信会对授权链接做正则强匹配校验,如果链接的参数顺序不对,授权页面将无法正常访问。
参考链接(请在微信客户端中打开此链接体验)
Scope为snsapi_base
Scope为snsapi_userinfo
尤其注意:跳转回调redirect_uri,应当使用https链接来确保授权code的安全性。
这样,如果我们配置的连接为 ,其中uid为我们对应的账号名称。
那么我们根据上面规则,得到重定向的连接地址就是如下所示。
2)通过code换取网页授权access_token
首先请注意,这里通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。
尤其注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。
获取code后,请求以下链接获取access_token:
在具体的页面里面,我们可以获得相关的参数,如uid我们可以把它转换为我们对应的账号信息,如下所示。
/// &summary&
/// 根据账号名获取对应的对象
/// &/summary&
/// &returns&&/returns&
private AccountInfo GetAccount()
AccountInfo accountInfo =
string accountNo = Request.QueryString["uid"];
if (!string.IsNullOrEmpty(accountNo))
accountInfo = BLLFactory&Account&.Instance.FindByAccountNo(accountNo);
return accountI
而其中的code,我们根据这个信息,也可以获得用户的相关信息,我们需要获得访问用户的openid,如下所示。
string code = Request.QueryString["code"];
IBasicApi baseApi = new BasicApi();
var result = baseApi.GetAuthToken(accountInfo.UniteAppId, accountInfo.UniteAppSecret, code);
if (result != null && !string.IsNullOrEmpty(result.openid))
var openid = result.
有了这些信息,我们就可以构建我们的红包参数,并封装好签名了。
WxPayData data = new WxPayData();
data.SetValue("openid", openid);
data.SetValue("lottery_id", lottery_id);
data.SetValue("noncestr", data.GenerateNonceStr());
data.SetValue("sign", data.MakeSign(accountInfo.PayAPIKey));
然后,我们在后台,把这些信息赋值给ViewBag,就可以在页面上顺利使用了。
var sign = data.GetString("sign");//获取生成的sign
var noncestr = data.GetString("noncestr");//获取生成的sign
ViewBag.sign =
ViewBag.lottery_id = lottery_
ViewBag.openid =
ViewBag.noncestr2 =
在摇一摇红包的处理视图页面里面,我们先引入对应的js文件,如下所示
&title&摇一摇红包页面&/title&
&link rel="stylesheet" href="http://demo.open.weixin.qq.com/jssdk/css/style.css?ts="&
&script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js"&&/script&
&script type="text/javascript" src="http://zb.weixin.qq.com/app/shakehb/BeaconShakehbJsBridge.js"&&/script&
然后在JS里面添加相关的处理函数,并赋值给对应的接口参数。
&script type="text/javascript"&
BeaconShakehbJsBridge.ready(function () {
//跳转到抽红包页面
BeaconShakehbJsBridge.invoke('jumpHongbao', {
lottery_id: '@ViewBag.lottery_id',
noncestr: '@ViewBag.noncestr2',
openid: '@ViewBag.openid',
sign: '@ViewBag.sign'
最后,我们测试相关的结果,使用手机摇一摇获得红包的过程界面效果如下所示。
如果对这个《C#开发微信门户及应用》系列感兴趣,可以关注我的其他文章.
主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发。
专注于Winform开发框架/混合式开发框架、Socket开发框架、Web开发框架、Bootstrap开发框架、微信门户开发框架的研究及应用。
”摇一摇周边“是微信提供的一种新的基于位置的连接方式。用户通过“摇一摇”的“周边”页卡,可以与线下商户进行互动,获得商户提供的个性化的服务。微信4月份有一个赠送摇一摇设备的活动,我们有幸获得赠送资格,取得一个摇一摇的设备用来测试这个新增的、很有潜力的功能。”摇一摇周边“是微...
在现今很多网站里面,都使用了微信开放平台的扫码登录认证处理,这样做相当于把身份认证交给较为权威的第三方进行认证,在应用网站里面可以不需要存储用户的密码了。本篇介绍如何基于微信开放平台的扫码进行网站的登陆处理。 1、开放平台的认证 要使用网站的扫码登录处理,就需要先进行微信开...
在我前面的几篇博客,有介绍了微信支付、微信红包、企业付款等各种和支付相关的操作,不过上面都是基于微信普通API的封装,本篇随笔继续微信支付这一主题,继续介绍基于微信网页JSAPI的方式发起的微信支付功能实现,微信的JSAPI相对于普通的API操作,调试没有那么方便,而且有时...
一、什么是OAuth2.0 官方网站:http://oauth.net/ http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure authorization in a simple and sta...
我在上篇随笔《C#开发微信门户及应用(32)--微信支付接入和API封装使用》介绍为微信支付的API封装及使用,其中介绍了如何配置好支付环境,并对扫码支付的两种方式如何在C#开发中使用进行了介绍,本随笔继续介绍微信支付的相关内容,介绍其中的微信现金红包和裂变红包的封装和使用...
标签(空格分隔):1.论文主要内容作者通过CNN网络来学习图片的hash code,作者在这个学习到过程当中主要的创新之处在一下几个方面。1).不在是使用单张图片进行训练,而是通过输入一对图片来进行训练,标签是:如果这两张图片来自于同一类别,那么认为他们是相似的,为正样本,...
值得与否,各人心中自有一把杆秤。冤有头债有主,牵连无辜之人,并不值得称许。有些人,有些事,能救而不救,能做而不做,一辈子都会有心魔,至于别人知不知道,感不感激,那是别人的事。 袍袖翻飞,光影交叠,将生死交锋演绎得宛如桃花绽放。 这一幕不过眨眼功夫,在武功低微甚至不谙武功的人...
落日是最能激发人们震撼感的情景之一。 这个时候,它的光是柔和的,你可以盯着它看。 盯着它看,你会想到什么? 古代人会崇拜太阳,因为他们感受到了它的光辉。但他们不知道太阳究竟是什么,只是看到了一个小小的圆球形天体,还想象出夸父追日、后羿射日、阿波罗太阳车之类的故事。 但现在的...
所谓的风险,就是未来的不确定性生活中存在一条不变的事实:低风险低报酬、高风险高报酬 投资要做的长远,就要懂投资背后风险对投资人而言,最怕的就是只看结果,但是却不知道投资的过程中发生什么事。 常态分布可以让你对机率有更明确的了解高斯发现,所有的事物只要数量多,都会有一定规律的...
内容作为新媒体运营非常重要的一部分,让很多人恼得恨不得撸光了头发。做原创?都说原创才是最棒哒,容易形成差异化,那么如何保持原创内容生产的稳定性就是难题,我们先从内容的中心化说起。 一、什么是中心化与去中心化 ? 简单的理解,中心化是在集权,而去中心化是在分权。 二、新浪尽经...文明上网,理性发声。
---华夏经纬网版权所有---}

我要回帖

更多关于 微信摇一摇周边红包 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信