ConfirmController.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. class ConfirmController extends CController{
  3. public $layout="none";
  4. public function actionPaySuccess(){
  5. $input_data = json_decode(file_get_contents("php://input"), true);
  6. $input_data = $input_data['data']['object'];
  7. if($input_data['object'] == 'charge'&& $input_data['paid']==true){
  8. //TODO update database
  9. if(strpos($input_data['order_no'], 'char') !== false ){ //充值卡订单
  10. // 支付成功后 用户余额/代金券 增加 暂时充值卡发放的代金券没有过期时间
  11. $order = RechargeOrder::get(new MongoId(str_replace("char","",$input_data['order_no'])));
  12. $recharge = Recharge::get(new MongoId($order->recharge));
  13. $user_obj = RUser::get($order->user);
  14. $amount = $recharge->denomination;
  15. if($recharge->cash_back){
  16. $amount += $recharge->cash_back;
  17. }
  18. if(isset($recharge->coupons) && is_array($recharge->coupons) && count($recharge->coupons)){
  19. foreach ($recharge->coupons as $coupon_id) {
  20. //$start_time = time();
  21. //$end_time = strtotime(date('Y-m-d',$start_time+1209600));
  22. Service::factory('CouponService')->giveCoupon($user_obj->_id, $coupon_id);
  23. }
  24. }
  25. $user_obj->balance = $user_obj->balance+$amount;
  26. $user_obj->save();
  27. $log = new RechargeLog();
  28. $log->time = time();
  29. $log->user = $user_obj->_id;
  30. $log->recharge = $recharge->_id;
  31. $log->save(true);
  32. $balance_log = new BalanceLog();
  33. $balance_log->time = time();
  34. $balance_log->user = $user_obj->_id;
  35. $balance_log->memo = '购买充值卡充值';
  36. $balance_log->type = 'recharge';
  37. $balance_log->amount = $amount;
  38. $balance_log->save(true);
  39. $order->charge_id = $input_data['id'];
  40. $order->pay_channel = $input_data['channel'];
  41. $order->status = 1;
  42. $order->update(array('charge_id','pay_channel','status'),true);
  43. echo 'success';
  44. die();
  45. }else{
  46. $order = ROrder::get(new MongoId($input_data['order_no']));
  47. if(!$order || $order->status == -1){
  48. echo 'fail';
  49. die();
  50. }
  51. $order->charge_id = $input_data['id'];
  52. $order->pay_channel = $input_data['channel'];
  53. $order->status = 1;
  54. if($order->update(array('charge_id','pay_channel','status'),true)){
  55. $list = new ARedisList('o2o_after_pay_success');
  56. $list->push(json_encode($input_data));
  57. //如果有余额支付 扣除用户余额
  58. if($order->final_price>$order->pay_price){
  59. $user_obj = RUser::get($order->user);
  60. $user_obj->balance = $user_obj->balance-($order->final_price-$order->pay_price);
  61. $user_obj->save();
  62. }
  63. echo 'success';
  64. die();
  65. }else{
  66. echo 'fail';
  67. die();
  68. }
  69. }
  70. }elseif($input_data['object'] == 'refund'&& $input_data['succeed']==true){
  71. //TODO update database
  72. echo 'success';
  73. die();
  74. }else{
  75. echo 'fail';
  76. die();
  77. }
  78. }
  79. public function actionCheckMobile(){
  80. $mobile = Yii::app()->getRequest()->getParam("mobile",'');
  81. if($mobile && preg_match("/\d{11}/",$mobile)){
  82. $criteria = new EMongoCriteria();
  83. $criteria->mobile('==',$mobile);
  84. $user = Mobile::model()->find($criteria);
  85. if($user){
  86. echo 'fail';
  87. }else{
  88. $userAr = new Mobile();
  89. $userAr->mobile = $mobile;
  90. if($userAr->save()){
  91. echo 'success';
  92. }else{
  93. echo 'fail';
  94. }
  95. }
  96. }else{
  97. echo 'fail';
  98. }
  99. }
  100. public function actionSyncCode(){
  101. echo ENVIRONMENT."\n";
  102. if(ENVIRONMENT == 'product'){
  103. exec("/data/php/webshell/SyncCodeOnline.sh");
  104. echo 'success';
  105. }elseif(ENVIRONMENT == 'develop'){
  106. exec("/data/php/webshell/SyncCodeDev.sh");
  107. echo 'success';
  108. }else{
  109. exec("/data/php/webshell/SyncCode.sh");
  110. echo 'success';
  111. }
  112. }
  113. }