微信紅包互換源碼
㈠ 微信的紅包怎麼換到QQ紅包里
目前無法更換,QQ和微信是兩個不同的軟體,目前還無法轉換,可以通過微信提現,然後在QQ紅包充值得到更換。
㈡ ios微信紅包透視源碼
微信紅包透視出來沒有
㈢ 微信游戲紅包互換怎麼運營
對話框有個加號,點了加號會看到有紅包這個功能,再點進去就進入紅包這個應用了。
有多種發法,可以是明示紅包金額的,也可以是玩游戲的方式的。
㈣ 微信紅包122.5發怎麼成了122.50呢
這個系列文章已經整理了10篇,但都沒有涉及到具體的紅包演算法實現,主要有以下兩方面原因。
一方面是各社交/IM產品中的紅包功能同質化嚴重,紅包演算法的「可玩性」便是「核心競爭力所在」,這是同質化功能的差異化競爭思路,不會隨便公開。
另一方面,市場上還存在各種搶紅包插件這類灰產存在,一旦公開這些演算法,很可能又被這幫插件開發者們搞出什麼幺蛾子。
所以,這樣的情況下,如果要做社交/IM產品中的紅包功能,紅包隨便演算法該怎麼實現,基本上只能自已琢磨,很難找到大廠演算法直接套用。
本著即時通訊網一貫的im知識傳播精神,我收集整理並參考了大量的網上資料,綜合了比較靠譜的信息來源,便有了本文。本文根據有限的資料,分享了微信紅包隨機演算法實現中的一些技術要點,並整理了兩種比較靠譜的紅包演算法實現思路(含可運行的實現代碼),希望能給你的紅包演算法開發帶來啟發。
申明:本文資料整理自網路,僅供學習研究之用,如有不妥,請通知Jack Jiang。
學習交流:
- 移動端IM開發入門文章:《新手入門一篇就夠:從零開發移動端IM》
- 開源IM框架源碼:
https://github.com/JackJiang2011/MobileIMSDK
本文已同步發布於「即時通訊技術圈」公眾號。
2、系列文章
《社交軟體紅包技術解密(一):全面解密QQ紅包技術方案——架構、技術實現等》
《社交軟體紅包技術解密(二):解密微信搖一搖紅包從0到1的技術演進》
《社交軟體紅包技術解密(三):微信搖一搖紅包雨背後的技術細節》
《社交軟體紅包技術解密(四):微信紅包系統是如何應對高並發的》
《社交軟體紅包技術解密(五):微信紅包系統是如何實現高可用性的》
《社交軟體紅包技術解密(六):微信紅包系統的存儲層架構演進實踐》
《社交軟體紅包技術解密(七):支付寶紅包的海量高並發技術實踐》
《社交軟體紅包技術解密(八):全面解密微博紅包技術方案》
《社交軟體紅包技術解密(九):談談手Q春節紅包的設計、容災、運維、架構等》
《社交軟體紅包技術解密(十):手Q客戶端針對2020年春節紅包的技術實踐》
《社交軟體紅包技術解密(十一):最全解密微信紅包隨機演算法(含演示代碼)》(* 本文)
3、微信紅包演算法要點匯總
這是目前能找到的僅有的一份,有微信團隊人員參與的微信紅包演算法技術要點的討論資料。分享於2015年,差不多是微信紅包剛火沒多久,大概是微信技術團隊的人當時沒有現在這些技術之外的顧慮,所以作了有限的分享,資料難得,本次重新整理了一下,可以作為參考資料使用。以下是資料正文。
資料來源:來自InfoQ的某架構群的技術討論,由朱玉華整理(個人博客是:zhuyuhua.com(目前已無法訪問))。
資料背景:起因是有朋友在朋友圈咨詢微信紅包的架構,於是在微信團隊成員參與討論的情況下,我(指「朱玉華」)整理了這次討論的技術要點,也就是下面的內容(內容為問答形式)。
3.1、演算法實現的技術要點
【1】問:微信的金額什麼時候算?
答:微信金額是拆的時候實時算出來,不是預先分配的,採用的是純內存計算,不需要預算空間存儲。
為什麼採取實時計算金額?原因是:實時效率更高,預算才效率低下。預算還要佔額外存儲。因為紅包只佔一條記錄而且有效期就幾天,所以不需要多大空間。就算壓力大時,水平擴展機器是。
【2】問:關於實時實時性,為什麼明明搶到紅包,點開後發現沒有?
答:2014年的紅包一點開就知道金額,分兩次操作,先搶到金額,然後再轉賬。
2015年的紅包的拆和搶是分離的,需要點兩次,因此會出現搶到紅包了,但點開後告知紅包已經被領完的狀況。進入到第一個頁面不代表搶到,只表示當時紅包還有。
【3】問:關於分配演算法,紅包里的金額怎麼算?為什麼出現各個紅包金額相差很大?
答:隨機,額度在 0.01 和剩餘平均值 2 之間。 例如:發 100 塊錢,總共 10 個紅包,那麼平均值是 10 塊錢一個,那麼發出來的紅包的額度在 0.01元~20元之間波動。
當前面 3 個紅包總共被領了 40 塊錢時,剩下 60 塊錢,總共 7 個紅包,那麼這 7 個紅包的額度在:0.01~(60/7 * 2)=17.14之間。
注意:這里的演算法是每被搶一個後,剩下的會再次執行上面的這樣的演算法(Tim老師也覺得上述演算法太復雜,不知基於什麼樣的考慮)。
這樣算下去,會超過最開始的全部金額,因此到了最後面如果不夠這么算,那麼會採取如下演算法:保證剩餘用戶能拿到最低1分錢即可。
如果前面的人手氣不好,那麼後面的余額越多,紅包額度也就越多,因此實際概率一樣的。
【4】問:紅包的設計
答:微信從財付通拉取金額數據過來,生成個數/紅包類型/金額放到redis集群里,app端將紅包ID的請求放入請求隊列中,如果發現超過紅包的個數,直接返回。根據紅包的邏輯處理成功得到令牌請求,則由財付通進行一致性調用,通過像比特幣一樣,兩邊保存交易記錄,交易後交給第三方服務審計,如果交易過程中出現不一致就強制回歸。
【5】問:並發性處理:紅包如何計算被搶完?
答:cache會抵抗無效請求,將無效的請求過濾掉,實際進入到後台的量不大。cache記錄紅包個數,原子操作進行個數遞減,到 0 表示被搶光。財付通按照 20萬筆每秒入賬准備,但實際還不到 8萬每秒。
【6】問:通如何保持8w每秒的寫入?
答:多主sharding,水平擴展機器。
【7】問:數據容量多少?
答:一個紅包只佔一條記錄,有效期只有幾天,因此不需要太多空間。
【8】問:查詢紅包分配,壓力大不?
答:搶到紅包的人數和紅包都在一條cache記錄上,沒有太大的查詢壓力。
【9】問:一個紅包一個隊列?
答:沒有隊列,一個紅包一條數據,數據上有一個計數器欄位。
【10】問:有沒有從數據上證明每個紅包的概率是不是均等?
答:不是絕對均等,就是一個簡單的拍腦袋演算法。
【11】問:拍腦袋演算法,會不會出現兩個最佳?
答:會出現金額一樣的,但是手氣最佳只有一個,先搶到的那個最佳。
【12】問:每領一個紅包就更新數據么?
答:每搶到一個紅包,就cas更新剩餘金額和紅包個數。
【13】問:紅包如何入庫入賬?
答:資料庫會累加已經領取的個數與金額,插入一條領取記錄。入賬則是後台非同步操作。
【14】問:入帳出錯怎麼辦?比如紅包個數沒了,但余額還有?
答:最後會有一個take all操作。另外還有一個對賬來保障。
【15】問:既然在搶的時候有原子減了就不應該出現搶到了拆開沒有的情況?
答:這里的原子減並不是真正意義上的原子操作,是Cache層提供的CAS,通過比較版本號不斷嘗試。
【16】問:cache和db掛了怎麼辦?
答:主備 +對賬。
【17】問:為什麼要分離搶和拆?
答:總思路是設置多層過濾網,層層篩選,層層減少流量和壓力。
這個設計最初是因為搶操作是業務層,拆是入賬操作,一個操作太重了,而且中斷率高。 從介面層面看,第一個介面純緩存操作,搞壓能力強,一個簡單查詢Cache擋住了絕大部分用戶,做了第一道篩選,所以大部分人會看到已經搶完了的提示。
【18】問:搶到紅包後再發紅包或者提現,這里有什麼策略嗎?
答:大額優先入賬策略。
針對上面的技術要點,有人還畫了張原理圖(這是網上能找到的相對清晰的版本):
3.2、微信搶紅包的過程模擬
針對上節中整理的資料,當有人在微信群里發了一個 N 人的紅包、總金額 M 元,後台大概的技術邏輯如下。
3.2.1)發紅包後台操作:
1)在資料庫中增加一條紅包記錄,存儲到CKV,設置過期時間;
2)在Cache(可能是騰訊內部kv資料庫,基於內存,有落地,有內核態網路處理模塊,以內核模塊形式提供服務))中增加一條記錄,存儲搶紅包的人數N。
3.2.2)搶紅包後台操作:
1)搶紅包分為搶和拆:搶操作在Cache層完成,通過原子減操作進行紅包數遞減,到0就說明搶光了,最終實際進入後台拆操作的量不大,通過操作的分離將無效請求直接擋在Cache層外面。
這里的原子減操作並不是真正意義上的原子減操作,是其Cache層提供的CAS,通過比較版本號不斷嘗試,存在一定程度上的沖突,沖突的用戶會放行,讓其進入下一步拆的操作,這也解釋了為啥有用戶搶到了拆開發現領完了的情況。
2)拆紅包在資料庫完成:通過資料庫的事務操作累加已經領取的個數和金額,插入一條領取流水,入賬為非同步操作,這也解釋了為啥在春節期間紅包領取後在余額中看不到。
拆的時候會實時計算金額,其金額為1分到剩餘平均值2倍之間隨機數,一個總金額為M元的紅包,最大的紅包為 M * 2 /N(且不會超過M),當拆了紅包後會更新剩餘金額和個數。財付通按20萬筆每秒入賬准備,實際只到8萬每秒。
㈤ 微信紅包5元隨機紅包隨機的金額
微信紅包隨機數字_微信隨機紅包數詳解和演算法代碼
1 需求
寫⼀個固定紅包 + 隨機紅包
固定紅包就是每個紅包⾦額⼀樣,有多少個就發多少個固定紅包⾦額就⾏。
隨機紅包的需求是。⽐如紅包總⾦額5元,需要發10個紅包。隨機范圍是 0.01到0.99;5元必需發完,⾦額需要有⼀定趨勢的正態分布。
(0.99可以任意指定,也可以是 avg * 2 - 0.01;⽐如avg = 5 / 10 = 0.5;(avg * 2 - 0.01 = 0.99))
2 需求分析
2.1 固定紅包
如果是固定紅包,則演算法是⼀條直線。t就是固定紅包的額度。如圖。
f(x) = t;(1 <= x <= num)
image.png
2.2 隨機紅包
如果我們使⽤隨機函數rand。rand(0.01,0.99);那麼10次隨機,如果最壞情況都是⾦額0.99,總⾦額就是9.9元。會超過5元。⾦額也會不正態分布。最後思考了⼀下藉助與數學函數來當作隨機紅包的發⽣器,可以⽤拋物線,三⾓函數。最後選定了等腰三⾓線性函數。
1 演算法原理
如果需要發紅包總⾦額是totalMoney,紅包個數是num個,⾦額范圍是[min,max],線性⽅程如圖。
image.png
三個點的坐標:
(x1,y1) = (1,min)
(x2,y2) = (num/2,max)
(x3,y3) = (num,min)
確定的線性⽅程:
$y = 1.0 * ($x - $x1) / ($x2 - $x1) * ($y2 - $y1) + $y1 ; (x1 <= x <= x2)
$y = 1.0 * ($x - $x2) / ($x3 - $x2) * ($y3 - $y2) + $y2; (x2 <= x <= x3)
修數據:
y(合) = y1 + y2 + y3 +...... ynum;
y(合)有可能 > totalMoney ,說明⽣成⾦額多了,需要修數據,則從(y1,y2,y3.....ynum)這些每次減少0.01。直到y(合) = totalMoney。
y(合)有可能 < totalMoney ,說明⽣成⾦額少了,需要修數據,則從(y1,y2,y3.....ynum)這些每次加上0.01。直到y(合) = totalMoney。
2 演算法原理樣例
如果需要發紅包總⾦額是11470,紅包個數是7400個,⾦額范圍是[0.01,3.09],線性⽅程如圖。
image.png
3 需求設計
3.1 類圖設計
image.png
3.2 源碼設計
/**
* 隨機紅包+固定紅包演算法[策略模式]
*/
//配置傳輸數據DTO
class OptionDTO
{
//紅包總⾦額
public $totalMoney;
//紅包數量
public $num;
//范圍開始
public $rangeStart;
//范圍結算
public $rangeEnd;
//⽣成紅包策略
public $builderStrategy;
//隨機紅包剩餘規則
public $randFormatType; //Can_Left:不修數據,可以有剩餘;No_Left:不能有剩餘public static function create($totalMoney,$num,$rangeStart,$rangEnd, $builderStrategy,$randFormatType = 'No_Left')
{
$self = new self();
$self->num = $num;
$self->rangeStart = $rangeStart;
$self->rangeEnd = $rangEnd;
$self->totalMoney = $totalMoney;
$self->builderStrategy = $builderStrategy;
$self->randFormatType = $randFormatType;
return $self;
}
}
//紅包⽣成器接⼝
interface IBuilderStrategy
{
//創建紅包
public function create();
//設置配置
public function setOption(OptionDTO $option);
//是否可以⽣成紅包
public function isCanBuilder();
//⽣成紅包函數
public function fx($x);
}
//固定等額紅包策略
class EqualPackageStrategy implements IBuilderStrategy {
//單個紅包⾦額
public $oneMoney;
//數量
public $num;
public function __construct($option = null)
{
if($option instanceof OptionDTO)
{
$this->setOption($option);
}
}
public function setOption(OptionDTO $option)
{
$this->oneMoney = $option->rangeStart;
$this->num = $option->num;
}
public function create()
{
$data = array();
if(false == $this->isCanBuilder())
{
return $data;
}
$data = array();
if(false == is_int($this->num) || $this->num <= 0) {
return $data;
}
for($i = 1;$i <= $this->num;$i++)
{
$data[$i] = $this->fx($i);
}
return $data;
}
/**
* 等額紅包的⽅程是⼀條直線
*
* @param mixed $x
* @access public
* @return void
*/
public function fx($x)
{
return $this->oneMoney;
}
/**
* 是否能固定紅包
*
* @access public
* @return void
*/
public function isCanBuilder()
{
if(false == is_int($this->num) || $this->num <= 0)
{
return false;
}
if(false == is_numeric($this->oneMoney) || $this->oneMoney <= 0)
{
return false;
}
//單個紅包⼩於1分
if($this->oneMoney < 0.01)
{
return false;
}
return true;
}
}
//隨機紅包策略(三⾓形)
class RandTrianglePackageStrategy implements IBuilderStrategy
{
//總額
public $totalMoney;
//紅包數量
public $num;
//隨機紅包最⼩值
public $minMoney;
//隨機紅包最⼤值
public $maxMoney;
//修數據⽅式:NO_LEFT: 紅包總額 = 預算總額;CAN_LEFT: 紅包總額 <= 預算總額public $formatType;
//預算剩餘⾦額
public $leftMoney;
public function __construct($option = null)
{
if($option instanceof OptionDTO)
{
$this->setOption($option);
}
}
public function setOption(OptionDTO $option) {
$this->totalMoney = $option->totalMoney;
$this->num = $option->num;
$this->formatType = $option->randFormatType; $this->minMoney = $option->rangeStart;
$this->maxMoney = $option->rangeEnd;
$this->leftMoney = $this->totalMoney;
}
/**
* 創建隨機紅包
*
* @access public
* @return void
*/
public function create()
{
$data = array();
if(false == $this->isCanBuilder())
{
return $data;
}
$leftMoney = $this->leftMoney;
for($i = 1;$i <= $this->num;$i++)
{
$data[$i] = $this->fx($i);
$leftMoney = $leftMoney - $data[$i];
}
//修數據
list($okLeftMoney,$okData) = $this->format($leftMoney,$data);
//隨機排序
shuffle($okData);
$this->leftMoney = $okLeftMoney;
return $okData;
}
/**
* 是否能夠發隨機紅包
* @access public
* @return void
*/
public function isCanBuilder()
{
if(false == is_int($this->num) || $this->num <= 0)
{
return false;
}
if(false == is_numeric($this->totalMoney) || $this->totalMoney <= 0) {
return false;
}
//均值
$avgMoney = $this->totalMoney / 1.0 / $this->num;
//均值⼩於最⼩值
if($avgMoney < $this->minMoney )
{
return false;
}
return true;
}
/**
* 獲取剩餘⾦額
* @access public
public function getLeftMoney()
{
return $this->leftMoney;
}
/**
* 隨機紅包⽣成函數。三⾓函數。[(1,0.01),($num/2,$avgMoney),($num,0.01)] * @param mixed $x,1 <= $x <= $this->num;
* @access public
* @return void
*/
public function fx($x)
{
if(false == $this->isCanBuilder())
{
return 0;
}
if($x < 1 || $x > $this->num)
{
return 0;
}
$x1 = 1;
$y1 = $this->minMoney;
//中間點
$x2 = ceil($this->num / 1.0 / 2);
//我的峰值
$y2 = $this->maxMoney;
//最後點
$x3 = $this->num;
$y3 = $this->minMoney;
//當x1,x2,x3都是1的時候(豎線)
if($x1 == $x2 && $x2 == $x3)
{
// '/_\'三⾓形狀的線性⽅程
//'/'部分
if($x1 != $x2 && $x >= $x1 && $x <= $x2)
{
、 $y = 1.0 * ($x - $x1) / ($x2 - $x1) * ($y2 - $y1) + $y1; return number_format($y, 2, '.', '');
}
//'\'形狀
if($x2 != $x3 && $x >= $x2 && $x <= $x3)
{
$y = 1.0 * ($x - $x2) / ($x3 - $x2) * ($y3 - $y2) + $y2; return number_format($y, 2, '.', '');
}
return 0;
}
/**
* 格式化修紅包數據
*
* @param mixed $leftMoney
* @param array $data
* @access public
* @return void
*/
private function format($leftMoney,array $data)
{
//不能發隨機紅包
if(false == $this->isCanBuilder())
{
return array($leftMoney,$data);
}
//紅包剩餘是0
if(0 == $leftMoney) //⽆需修數據
return array($leftMoney,$data);
}
//數組為空
if(count($data) < 1)
{
return array($leftMoney,$data);
}
//如果是可以有剩餘,並且$leftMoney > 0
if('Can_Left' == $this->formatType
&& $leftMoney > 0)
{
return array($leftMoney,$data);
}
// 如果還有餘錢,則嘗試加到⼩紅包⾥,如果加不進去,則嘗試下⼀個。while($leftMoney > 0)
{
$found = 0;
foreach($data as $key => $val)
{
//減少循環優化
if($leftMoney <= 0)
{
break;
}
//預判
$afterLeftMoney = (double)$leftMoney - 0.01;
$afterVal = (double)$val + 0.01;
if( $afterLeftMoney >= 0 && $afterVal <= $this->maxMoney)
{
$found = 1;
$data[$key] = number_format($afterVal,2,'.','');
$leftMoney = $afterLeftMoney;
//精度
}
}
//如果沒有可以加的紅包,需要結束,否則死循環
//也就是會出現每個紅包不分錢的情況,⽐如紅包都已經最⼤值。這時必須在分的時候給予標志,防⽌死循環。if($found == 0)
{
break;
}
}
//如果$leftMoney < 0 ,說明⽣成的紅包超過預算了,需要減少部分紅包⾦額
while($leftMoney < 0)
{
$found = 0;
foreach($data as $key => $val)
{
if($leftMoney >= 0)
{
break;
}
//預判
$afterLeftMoney = (double)$leftMoney + 0.01;
$afterVal = (double)$val - 0.01;
if( $afterLeftMoney <= 0 && $afterVal >= $this->minMoney)
{
$found = 1;
$data[$key] = number_format($afterVal,2,'.','');
$leftMoney = $afterLeftMoney;
$leftMoney = number_format($leftMoney,2,'.','');
}
}
//如果⼀個減少的紅包都沒有的話,需要結束,否則死循環
if($found == 0)
{
}
}
return array($leftMoney,$data);
}
}
//維護策略的環境類
class RedPackageBuilder
{
// 實例
protected static $_instance = null;
/**
* Singleton instance(獲取⾃⼰的實例)
*
* @return MemcacheOperate
*/
public static function getInstance()
{
if (null === self::$_instance)
{
self::$_instance = new self();
}
return self::$_instance;
}
/**
* 獲取策略【使⽤反射】
*
* @param string $type 類型
* @return void
*/
public function getBuilderStrategy($type) {
$class = $type.'PackageStrategy';
if(class_exists($class))
return new $class();
}
else
{
throw new Exception("{$class} 類不存在!");
}
}
public function getRedPackageByDTO(OptionDTO $optionDTO)
{
//獲取策略
$builderStrategy = $this->getBuilderStrategy($optionDTO->builderStrategy); //設置參數
$builderStrategy->setOption($optionDTO);
return $builderStrategy->create();
}
}
class Client
{
public static function main($argv)
{
//固定紅包
$dto = OptionDTO::create(1000,10,100,100,'Equal');
$data = RedPackageBuilder::getInstance()->getRedPackageByDTO($dto);
//print_r($data);
//隨機紅包[修數據]
$dto = OptionDTO::create(5,10,0.01,0.99,'RandTriangle');
$data = RedPackageBuilder::getInstance()->getRedPackageByDTO($dto); print_r($data);
//隨機紅包[不修數據]
$dto = OptionDTO::create(5,10,0.01,0.99,'RandTriangle','Can_Left');
$data = RedPackageBuilder::getInstance()->getRedPackageByDTO($dto);
//print_r($data);
}
¥
5.9
網路文庫VIP限時優惠現在開通,立享6億+VIP內容
立即獲取
微信紅包隨機數字_微信隨機紅包數詳解和演算法代碼
微信紅包隨機數字_微信隨機紅包數詳解和演算法代碼
1 需求
寫⼀個固定紅包 + 隨機紅包
固定紅包就是每個紅包⾦額⼀樣,有多少個就發多少個固定紅包⾦額就⾏。
隨機紅包的需求是。⽐如紅包總⾦額5元,需要發10個紅包。隨機范圍是 0.01到0.99;5元必需發完,⾦額需要有⼀定趨勢的正態分布。
(0.99可以任意指定,也可以是 avg * 2 - 0.01;⽐如avg = 5 / 10 = 0.5;(avg * 2 - 0.01 = 0.99))
第 1 頁
2 需求分析
2.1 固定紅包
如果是固定紅包,則演算法是⼀條直線。t就是固定紅包的額度。如圖。
f(x) = t;(1 <= x <= num)
image.png
2.2 隨機紅包
如果我們使⽤隨機函數rand。rand(0.01,0.99);那麼10次隨機,如果最壞情況都是⾦額0.99,總⾦額就是9.9元。會超過5元。⾦額也會不正態分布。最後思考了⼀下藉助與數學函數來當作隨機紅包的發⽣器,可以⽤拋物線,三⾓函數。最後選定了等腰三⾓線性函數。
第 2 頁
1 演算法原理
如果需要發紅包總⾦額是totalMoney,紅包個數是num個,⾦額范圍是[min,max],線性⽅程如圖。
image.png
三個點的坐標:
(x1,y1) = (1,min)
(x2,y2) = (num/2,max)
(x3,y3) = (num,min)
確定的線性⽅程:
$y = 1.0 * ($x - $x1) / ($x2 - $x1) * ($y2 - $y1) + $y1 ; (x1 <= x <= x2)
第 3 頁
$y = 1.0 * ($x - $x2) / ($x3 - $x2) * ($y3 - $y2) + $y2; (x2 <= x <= x3)
修數據:
y(合) = y1 + y2 + y3 +...... ynum;
y(合)有可能 > totalMoney ,說明⽣成⾦額多了,需要修數據,則從(y1,y2,y3.....ynum)這些每次減少0.01。直到y(合) = totalMoney。
y(合)有可能 < totalMoney ,說明⽣成⾦額少了,需要修數據,則從(y1,y2,y3.....ynum)這些每次加上0.01。直到y(合) = totalMoney。
第 4 頁
2 演算法原理樣例
如果需要發紅包總⾦額是11470,紅包個數是7400個,⾦額范圍是[0.01,3.09],線性⽅程如圖。
image.png
3 需求設計
3.1 類圖設計
image.png
3.2 源碼設計
/**
* 隨機紅包+固定紅包演算法[策略模式]
第 5 頁
*/
//配置傳輸數據DTO
class OptionDTO
{
//紅包總⾦額
public $totalMoney;
//紅包數量
public $num;
//范圍開始
public $rangeStart;
第 6 頁
//范圍結算
public $rangeEnd;
//⽣成紅包策略
public $builderStrategy;
//隨機紅包剩餘規則
public $randFormatType; //Can_Left:不修數據,可以有剩餘;No_Left:不能有剩餘public static function create($totalMoney,$num,$rangeStart,$rangEnd, $builderStrategy,$randFormatType = 'No_Left')
第 7 頁
{
$self = new self();
$self->num = $num;
$self->rangeStart = $rangeStart;
$self->rangeEnd = $rangEnd;
$self->totalMoney = $totalMoney;
$self->builderStrategy = $builderStrategy;
$self->randFormatType = $randFormatType;
return $self;
展開全文
App內免費讀全文
前往文庫APP簽到領暢讀卡,免費讀微信紅包隨機數字...全文
限免
導長圖
轉存到網盤
發送至微信
下載文檔
北京網路網訊科技有限公司 版本號8.0.70 隱私政策 許可權說明
版權說明:本文檔由用戶提供並上傳,收益專屬歸內容提供方,若內容存在侵權,請進行舉報或認領
第 8 頁
為您精選微信紅包隨機數字...會員文檔964篇
微信紅包隨機金額生成演算法模擬及應用
2537人閱讀
微信紅包隨機金額生成演算法模擬及應用
1455人閱讀
微信紅包金額真的是隨機分配的嗎?
2391人閱讀
微信紅包演算法分析及實現
2508人閱讀
獲取全部文檔4326人在看
基於你的瀏覽為你整理資料合集
微信紅包隨機數字_微信隨機紅包數詳解和演算法代碼
文件夾
微信紅包規律分析 - 網路文庫
3.6分
2906閱讀
人氣好文
五塊五個包怎麼猜紅包尾數 - 網路文庫
4.4分
1082閱讀
微信紅包隨機金額生成演算法模擬及應用 - 網路文庫
4.0分
1491閱讀
近期下載量飆升
剩餘10篇精選文檔
前往APP一鍵獲取全部合集
相關文檔
微信紅包隨機金額生成演算法模擬及應用
免費獲取全文
微信紅包隨機金額生成演算法模擬及應用
免費獲取全文
微信紅包金額真的是隨機分配的嗎?
免費獲取全文
微信紅包演算法分析及實現
免費獲取全文
微信發紅包數字含義大全課件.doc
2567人已閱讀
行業好評
微型計算機系統微機原理及應用試題庫及答案(可編輯)
2060人已閱讀
百里挑一
計算機網路系統投標書(技術部分)
1569人已閱讀
網路安全設備-網閘[整理版]
1108人已閱讀
ASP導出Excel數據的四種方法
2213人已閱讀
學校開展網路安全教育活動方案
1822人已閱讀
第3篇 綜合應用篇 綜合案例5 計算機網路應用綜合案例
2470人已閱讀
CPU針腳斷了怎麼焊接
1218人已閱讀
數據結構順序表的查找插入與刪除
1594人已閱讀
網路安全建設實施方案
1331人已閱讀
網路安全檢查自查表
1489人已閱讀
查看更多
推薦文檔集
㈥ 微信紅包怎麼打電子版
需要有源碼才可以。
微信紅包是騰訊旗下產品微信於2014年1月27日推出的一款應用,功能上可以實現發紅包、查收發記錄和提現。
2014年4月14日,「安卓手機用戶只要用微信掃描身邊出現的紅色二維碼,通過騰訊應用寶成功安裝其他應用軟體,即可領取微信紅包。
2019年2月10日,微信官方發布2019年春節數據報告,除夕到初五,8.23億人次收發微信紅包。
㈦ 誰知道微三雲微信開發的那個紅包合體功能有沒有上線,使用效果好不好,這個功能源碼是開放的嗎
好了呀,前天追過去試了下,挺有意思的,應該會受歡迎,准備再去追緊點讓他們該快給我對接裝上
㈧ 誰可以開發精彩互換紅包系統
首先要開通微信支付,登錄微信商戶,充錢進去,建立紅包。然後,進入公眾號開發者中心,接入你的伺服器。調用介面,支付介面,獲取用戶open id ,調用關注時回復,發送紅包。 說白了,要第三方開發。