| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- /**
- * 余额支付
- */
- namespace app\api\services;
- use app\common\service\ShopOrderService;
- use think\facade\Db;
- class BalancePayServices extends BasePayServices
- {
- /**
- * 余额支付订单处理
- * @param $uid
- * @param $order_id
- * @throws \think\Exception
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function balanceToOrder($uid, $order_id){
- $order_info = ShopOrderService::make()->getInfoBySn($order_id, $uid);
- if ($order_info['status'] != 0){
- sr_throw('订单已支付,不能再次支付');
- }
- $user = Db::name('user')->where('id', $uid)->find();
- if (!$order_info){
- sr_throw('订单号错误');
- }
- if ($user['money']<$order_info['payment']){
- sr_throw('当前用户余额不足');
- }
- // 扣除余额
- edit_user_money(11, $uid, $order_info['payment']);
- // 发送购买通知信息
- addUserMessage($uid, 3, '余额购买商品成功', '恭喜你已经兑换到心仪的商品,请等待发货,如有疑问请联系客服');
- $out_trade_no = 'BA'.$order_id.mt_rand(1, 10000);
- // 支付信息处理
- $insert = [
- 'total_fee' => $order_info['payment'],
- 'trade_type' => 'app',
- 'body' => '购买商品',
- 'state' => 6,
- 'out_trade_no' => $out_trade_no,
- 'pay_way' => 3,
- 'remarks' => $order_id,
- 'order_type' => 4,
- 'pay_at'=>sr_getcurtime(time()),
- 'uid' => $uid,
- 'voucher_img' => '',
- 'out_trade_no1'=>''
- ];
- // 添加支付订单表
- Db::name('payment')->insert($insert);
- $ser = new ThirdPayServices();
- $ser->payBalanceDown($order_id, 3, '');
- }
- }
|