Recharge.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace app\common\model;
  3. use \think\Db;
  4. //use \com\Pay\Pay;
  5. /**
  6. * 订单支付模型
  7. */
  8. class Recharge
  9. {
  10. /**
  11. * 支付回调
  12. */
  13. public function goldpaysucc($orderId,$args){
  14. $order = Db::name('pay_order')->where(array('pay_no'=>$orderId,'status'=>2))->find();
  15. if( $order )
  16. {
  17. Db::startTrans();
  18. //更新订单状态
  19. $rs = Db::name('pay_order')->where(['id'=>$order['id']])->update(['status'=>1]);
  20. if(!$rs){
  21. Db::rollback();
  22. filePut('[wallet][paySucc] pay_order update fail'.$orderId);
  23. abort(500,lang('订单更新失败'));
  24. }
  25. //先充值
  26. $result = model('Wallet')->lockChangeAccountRemain($args['user_id'],'gold',$args['gold'],10, '金币充值:'.$orderId,'pay_order',$order['id']);
  27. if($result['status']===false)
  28. {
  29. Db::rollback();
  30. filePut('[wallet][paySucc]网银充值入账更新余额失败 recharge money fail'.$orderId.$result['msg']);
  31. abort(500,lang('网银充值入账 model wallet recharge money fail'));
  32. }
  33. Db::commit();
  34. return true;
  35. }else{
  36. filePut('[wallet][paySucc]在线支付订单有误 '.$orderId);
  37. abort(500,lang('model wallet fail'));
  38. return false;
  39. }
  40. }
  41. public function vippaysucc($orderId,$args){
  42. $order = Db::name('pay_order')->where(array('pay_no'=>$orderId,'status'=>2))->find();
  43. if( $order )
  44. {
  45. Db::startTrans();
  46. //更新订单状态
  47. $rs = Db::name('pay_order')->where(['id'=>$order['id']])->update(['status'=>1]);
  48. if(!$rs){
  49. Db::rollback();
  50. filePut('[wallet][paySucc] pay_order update fail'.$orderId);
  51. abort(500,lang('订单更新失败'));
  52. }
  53. //先充值
  54. $user_info = Db::name('user_wallet')->where('user_id',$args['user_id'])->lock(true)->find();
  55. if($user_info['vip_endtime'] < time()){
  56. //过期了
  57. $vip_endtime = time() + (intval($args['days']) * 86400);
  58. }else{
  59. //追加vip
  60. $vip_endtime = $user_info['vip_endtime'] + (intval($args['days']) * 86400);
  61. }
  62. $result = Db::name('user_wallet')->where('user_id',$args['user_id'])->update(['vip_endtime'=>$vip_endtime]);
  63. if($result === false)
  64. {
  65. Db::rollback();
  66. filePut('[wallet][paySucc]网银充值入账更新vip时间失败 recharge money fail'.$orderId.$result['msg']);
  67. abort(500,lang('网银充值入账 model wallet recharge money fail'));
  68. }
  69. Db::commit();
  70. //再扣款
  71. /* Db::startTrans();
  72. //需要更新某个支付表
  73. if(isset($args['payids']) && $args['payids'])
  74. {
  75. logic('Cashier')->paySuccess($args,true);
  76. filePut('[wallet][paySucc] end success '.$orderId);
  77. }
  78. Db::commit();*/
  79. return true;
  80. }else{
  81. filePut('[wallet][paySucc]在线支付订单有误 '.$orderId);
  82. abort(500,lang('model wallet fail'));
  83. return false;
  84. }
  85. }
  86. }