GiftCardOrderPay.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace addon\giftcard\model\order;
  3. use app\model\BaseModel;
  4. use app\model\system\Pay;
  5. class GiftCardOrderPay extends BaseModel
  6. {
  7. public function resetPay($params)
  8. {
  9. $out_trade_no = $params[ 'out_trade_no' ];
  10. $order_condition = array (
  11. [ 'pay_status', '=', 0 ],
  12. [ 'out_trade_no', '=', $out_trade_no ]
  13. );
  14. $order_condition[] = [ 'out_trade_no', '=', $out_trade_no ];
  15. $giftcard_order_model = new GiftCardOrder();
  16. $order_info = $giftcard_order_model->getOrderInfo($order_condition, 'pay_money,site_id,member_id');
  17. if (empty($order_info))
  18. return $this->error([], '没有可支付订单!');
  19. $pay_money = $order_info[ 'pay_money' ];
  20. $site_id = $order_info[ 'site_id' ];
  21. $pay_model = new Pay();
  22. $result = $pay_model->deletePay($out_trade_no);//关闭旧支付单据
  23. if ($result[ 'code' ] < 0) {
  24. return $this->error([], '当前单据已支付!');
  25. }
  26. $member_id = $order_info[ 'member_id' ];
  27. $new_out_trade_no = $pay_model->createOutTradeNo($member_id ?? 0);
  28. $update_data = array (
  29. 'out_trade_no' => $new_out_trade_no
  30. );
  31. model('giftcard_order')->update($update_data, $order_condition);
  32. $result = $pay_model->addPay($site_id, $new_out_trade_no, '', $params[ 'pay_body' ], $params[ 'pay_detail' ], $pay_money, '', 'GiftCardOrderPayNotify', '');
  33. return $this->success($new_out_trade_no);
  34. }
  35. }