pay_helper.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 16/6/4
  6. * Time: 上午11:12
  7. */
  8. require_once (BASE_ROOT_PATH . "/helper/user_helper.php");
  9. require_once (BASE_ROOT_PATH . '/helper/bonus_helper.php');
  10. class pay_helper
  11. {
  12. const store_user_id = 36429;
  13. const period_hour = 5 * 24;
  14. const total_number = 10;
  15. const send_type = 1;
  16. const def_bless = '熊猫美妆与你分享美丽的秘密~';
  17. public function __construct() {
  18. }
  19. public function success($pay_sn)
  20. {
  21. $logic_payment = Logic('payment');
  22. $result = $logic_payment->getRealOrderInfo($pay_sn);
  23. if($result['state'] != true) {
  24. return false;
  25. }
  26. $data = &$result['data'];
  27. $buyer_id = intval($data['buyer_id']);
  28. $order_amount = 0.0;
  29. $goods_amount = 0.0;
  30. if(is_array($data['order_list']))
  31. {
  32. foreach($data['order_list'] as $key => $order) {
  33. $order_amount += floatval($order['order_amount']);
  34. $goods_amount += floatval($order['goods_amount']);
  35. }
  36. $ret = self::send_share_bonus(36429,$buyer_id,$order_amount);
  37. if($ret == false) {
  38. Log::record("向用户发送购物后分享红包失败",log::ERR);
  39. return false;
  40. } else {
  41. Log::record("向用户发送购物后分享红包。。。",Log::DEBUG);
  42. $param['member_id'] = $buyer_id;
  43. $amount = $ret['money'];
  44. $param['text'] = "恭喜您获得{$amount}元红包,马上分享给小伙伴吧~";
  45. $param['go_type'] = 'bonus';
  46. QueueClient::push('upushSendMsg',$param);
  47. return true;
  48. }
  49. }
  50. else {
  51. return false;
  52. }
  53. }
  54. private function calc_amount($total_amount,$total_num)
  55. {
  56. $money = $total_num * predeposit_helper::scale() * $total_amount;
  57. $money = (intval((intval($money) / 10 )) + 1) * 10;
  58. return $money;
  59. }
  60. static private function is_enough($memer_id,$total_amount)
  61. {
  62. $member = Model('member');
  63. $relay_array = $member->getMemberPdInfo($memer_id);
  64. $total = floatval($relay_array['available_predeposit']);
  65. $total = intval($total*100 + 0.5);
  66. $total_amount = intval($total_amount * 100 + 0.5);
  67. return ($total_amount <= $total);
  68. }
  69. private function send_share_bonus($sender_id,$relayer_id,$total_amount)
  70. {
  71. $mod_member = Model('member');
  72. $info = $mod_member->getMemberInfoByID($relayer_id);
  73. $member_info = user_helper::filter_info($info);
  74. $param['sender_id'] = $sender_id;
  75. $param['relayer_id'] = $relayer_id;
  76. $param['sender_mobile'] = $member_info['member_mobile'];
  77. $param['sender_name'] = $member_info['member_nickname'];
  78. $param['send_start_date'] = time();
  79. if(is_publish()) {
  80. $param['send_end_date'] = $param['send_start_date'] + self::period_hour * 3600;
  81. } else {
  82. $param['send_end_date'] = $param['send_start_date'] + 600; //测试服务器用10分钟就退款
  83. }
  84. $param['total_num'] = self::total_number;
  85. $param['total_amount'] = $this->calc_amount($total_amount,self::total_number);
  86. $param['use_type'] = 1;
  87. $param['user_type'] = 2;
  88. $param['send_type'] = self::send_type;
  89. $param['type_bless'] = self::def_bless;
  90. if(self::is_enough($sender_id,$param['total_amount']) == false) {
  91. Log::record("系统账户余额不够给用户发送分享红包",Log::ERR);
  92. return false;
  93. }
  94. $ret = bonus_helper::make_bonus($param);
  95. if($ret === false) {
  96. return false;
  97. } else {
  98. $type_sn = $ret['type_sn'];
  99. $money = $ret['money'];
  100. $pre_helper = new predeposit_helper();
  101. $pre_helper->hand_out_store_bonus($money,$sender_id,$member_info['member_nickname'],$type_sn,$relayer_id,"发送了{$money}元的转发红包.");
  102. $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&client_type=wap&type_sn={$type_sn}";
  103. return array('money' => $money,'total_num' => self::total_number,'sender_name' => '熊猫美妆');
  104. }
  105. }
  106. }