pay_helper.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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/session_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. return true;
  42. }
  43. }
  44. else {
  45. return false;
  46. }
  47. }
  48. private function calc_amount($total_amount,$total_num)
  49. {
  50. $money = $total_num * predeposit_helper::scale() * $total_amount;
  51. $money = (intval((intval($money) / 10 )) + 1) * 10;
  52. return $money;
  53. }
  54. static private function is_enough($memer_id,$total_amount)
  55. {
  56. $member = Model('member');
  57. $relay_array = $member->getMemberPdInfo($memer_id);
  58. $total = floatval($relay_array['available_predeposit']);
  59. $total = intval($total*100 + 0.5);
  60. $total_amount = intval($total_amount * 100 + 0.5);
  61. return ($total_amount <= $total);
  62. }
  63. private function send_share_bonus($sender_id,$relayer_id,$total_amount)
  64. {
  65. $minfo = new member_info($relayer_id);
  66. $param['sender_id'] = $sender_id;
  67. $param['relayer_id'] = $relayer_id;
  68. $param['sender_mobile'] = $minfo->mobile();
  69. $param['sender_name'] = $minfo->nickname();
  70. $param['send_start_date'] = time();
  71. if(is_publish()) {
  72. $param['send_end_date'] = $param['send_start_date'] + self::period_hour * 3600;
  73. } else {
  74. $param['send_end_date'] = $param['send_start_date'] + 600; //测试服务器用10分钟就退款
  75. }
  76. $param['total_num'] = self::total_number;
  77. $param['total_amount'] = $this->calc_amount($total_amount,self::total_number);
  78. $param['use_type'] = 1;
  79. $param['user_type'] = 2;
  80. $param['send_type'] = self::send_type;
  81. $param['type_bless'] = self::def_bless;
  82. $param['make_type'] = bonus\type::MakePayType;
  83. if(self::is_enough($sender_id,$param['total_amount']) == false) {
  84. Log::record("系统账户余额不够给用户发送分享红包",Log::ERR);
  85. return false;
  86. }
  87. $ret = bonus_helper::make_bonus($param);
  88. if($ret === false) {
  89. return false;
  90. } else {
  91. $type_sn = $ret['type_sn'];
  92. $money = $ret['money'];
  93. $pre_helper = new predeposit_helper($sender_id);
  94. $pre_helper->handout_relaybonus($money,$minfo->nickname(),$type_sn,$relayer_id,"发送了{$money}元的转发红包.");
  95. $push_param = array();
  96. $push_param['member_id'] = $relayer_id;
  97. $push_param['text'] = "熊猫美妆向您派发了{$money}元的购物分享红包,您自己可以抢一份哦~.";
  98. $push_param['go_type'] = 'bonus';
  99. QueueClient::push('upushSendMsg',$push_param);
  100. return array('money' => $money,'total_num' => self::total_number,'sender_name' => '熊猫美妆');
  101. }
  102. }
  103. }