Nativepay.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace app\admin\controller\base\pay;
  3. /**
  4. * @title 微信二维码扫码支付控制器
  5. * @desc
  6. * @author Rock
  7. * @version 1.0
  8. * @icon fa fa-cny
  9. */
  10. use app\admin\controller\Base;
  11. class Nativepay extends Confirmpay
  12. {
  13. protected $noNeedLogin = ['callback','pay','test'];
  14. protected $model = null;
  15. protected $payrecordModel = null;
  16. protected $orderModel = null;
  17. protected $balanceorderModel = null;
  18. protected $safetyorderModel = null;
  19. protected $companycourseorderModel = null;
  20. protected $resitorderModel = null;
  21. protected $paytype = 5;//微信扫码支付
  22. public function initialize()
  23. {
  24. parent::initialize();
  25. $this->model = new \app\extend\weixin\Wxpay;
  26. $this->payrecordModel = new \app\common\model\pay\Payrecord;
  27. $this->orderModel = new \app\common\model\order\Courseorder;
  28. $this->balanceorderModel = new \app\common\model\order\Balanceorder;
  29. $this->safetyorderModel = new \app\common\model\order\Safetyorder;
  30. $this->companycourseorderModel = new \app\common\model\order\Companycourseorder;
  31. $this->resitorderModel = new \app\common\model\order\Resitorder;
  32. $this->ptypeList = $this->payrecordModel->getPtypeList();
  33. }
  34. /**
  35. * @title 创建支付流水并统一下单
  36. * @desc 说明
  37. * @method GET/POST
  38. * @param {string} {oid} {} {订单号}
  39. * @param {int} {ptype} {0} {订单类型:1=课程订单,2=余额充值,3=企业安全教育,4=企业批量购买课程,5=补考缴费}
  40. * @return {type} {name} {default} {desc}
  41. * @author Rock
  42. */
  43. public function pay($oid="",$ptype=0)
  44. {
  45. if(empty($oid))ShowJson(1,"缺少必要参数");
  46. if(empty($ptype))ShowJson(1,"缺少必要参数");
  47. $poid = CreateOrderID();
  48. $ptypeText = !empty($this->ptyleList[$ptype])?$this->ptyleList[$ptype]:"";
  49. if($ptype==1){//课程订单支付
  50. $where = [];
  51. $where['oid'] = ['=',$oid];
  52. $where['status'] = ['=',1];
  53. $orderInfo = $this->orderModel->where($where)->find();
  54. if(empty($orderInfo))ShowJson(1,"没有找到待支付订单");
  55. $amount = $orderInfo->pay_amount;
  56. $msg = "购买订单".$oid."支付";
  57. }elseif($ptype==2){//余额充值
  58. $where = [];
  59. $where['oid'] = ['=',$oid];
  60. $where['status'] = ['=',1];
  61. $orderInfo = $this->balanceorderModel->where($where)->find();
  62. $amount = $orderInfo->pay_amount;
  63. $msg = "充值订单".$oid."支付";
  64. }elseif($ptype==3){//企业安全教育课程
  65. $where = [];
  66. $where['oid'] = ['=',$oid];
  67. $where['status'] = ['=',1];
  68. $orderInfo = $this->safetyorderModel->where($where)->find();
  69. $amount = $orderInfo->pay_amount;
  70. $msg = "企业安全教育订单".$oid."支付";
  71. }elseif($ptype==4){
  72. $where = [];
  73. $where['oid'] = ['=',$oid];
  74. $where['status'] = ['=',1];
  75. $orderInfo = $this->companycourseorderModel->where($where)->find();
  76. $amount = $orderInfo->pay_amount;
  77. $msg = "企业批量购买课程订单".$oid."支付";
  78. }elseif($ptype==5){
  79. $where = [];
  80. $where['oid'] = ['=',$oid];
  81. $where['status'] = ['=',1];
  82. $orderInfo = $this->resitorderModel->where($where)->find();
  83. $amount = $orderInfo->pay_amount;
  84. $msg = "补考缴费订单".$oid."支付";
  85. }
  86. //创建支付订单
  87. $insertData = [
  88. 'oid' => $oid,
  89. 'uid' => $orderInfo->uid,
  90. 'type' => $this->paytype,
  91. 'msg' => $msg,
  92. 'amount'=> $amount,
  93. 'status'=> 0,
  94. 'ptype' => $ptype,
  95. 'poid' => $poid
  96. ];
  97. if(empty($insertData['amount'])){
  98. ShowJson(1,"支付金额小于0.01元");
  99. }
  100. $res = $this->payrecordModel->create($insertData);
  101. //调用微信支付统一下单接口,返回供小程序端支付需要的参数
  102. $data = $this->model->NativePay($poid,$amount,$ptypeText."订单".$oid."支付");
  103. ShowJson(0,'支付请求已发起',$data);
  104. }
  105. }