80 lines
2.8 KiB
PHP
80 lines
2.8 KiB
PHP
<?php
|
|
namespace addon\supply\model;
|
|
use app\model\BaseModel;
|
|
use app\model\system\Pay;
|
|
use think\facade\Cache;
|
|
use think\facade\Db;
|
|
class SupplyRechargeCreate extends BaseModel
|
|
{
|
|
// 订单待支付
|
|
const ORDER_CREATE = 0;
|
|
// 订单已支付
|
|
const ORDER_PAY = 1;
|
|
// 订单已关闭
|
|
const ORDER_CLOSE = -1;
|
|
/***
|
|
* 创建充值订单
|
|
* @param $pay_money
|
|
* @param $member_id
|
|
* @return array|mixed|string|void
|
|
*/
|
|
public function RechargeOrderCreate($pay_money,$site_id,$uid,$id)
|
|
{
|
|
$pay = new Pay();
|
|
$order_name = '货款预存';
|
|
$pay_type = 'alipay';//支付方式
|
|
$app_type = 'cashier'; //扫码支付
|
|
$out_trade_no = $pay->createOutTradeNo($uid);
|
|
$pay_detail = $site_id .'_' .$uid. '_'.$id;
|
|
$order_data = array();
|
|
$order_data['site_id'] = 1;
|
|
$order_data['order_type'] = 1;
|
|
$order_data['order_name'] =$order_name;
|
|
$order_data['order_no'] = $this->createOrderNo($site_id,$uid);
|
|
$order_data['out_trade_no'] = $out_trade_no;
|
|
$order_data['order_money'] = $pay_money;
|
|
$order_data['pay_money'] = $pay_money;
|
|
$order_data['pay_type'] = $pay_type;
|
|
$order_data['create_time'] = time();
|
|
$order_data['buyer_uid'] = $uid;
|
|
$order_data['buyer_shop_id'] = $site_id;
|
|
Db::name('supply_order')->insert($order_data);
|
|
$pay->addPay(1, $out_trade_no, $pay_type, $order_name, $pay_detail, $pay_money, '', 'SupplyRechargePayNotify', '', '');
|
|
$notify_url = addon_url("pay/pay/notify/paytype/" . $pay_type . '/app_type/' . $app_type . '/site_id/1');
|
|
$return_url = addon_url("pay/pay/payreturn", ['out_trade_no' => $out_trade_no, 'app_type' => $app_type]);
|
|
$data['site_id'] = 1;
|
|
$data['out_trade_no'] = $out_trade_no;
|
|
$data['pay_money'] = $pay_money;
|
|
$data['app_type'] = $app_type;
|
|
$data['pay_body'] = $order_name;
|
|
$data['notify_url'] = $notify_url;
|
|
$data['return_url'] = $return_url;
|
|
$data['pay_type'] = $pay_type;
|
|
$data["member_id"] = $uid;
|
|
$data["is_matched"] = 0;
|
|
$data["hb_fq_num"] = 0;
|
|
$res = event('Pay', $data, true);
|
|
$res['data']['out_trade_no'] = $out_trade_no;
|
|
return $res;
|
|
}
|
|
|
|
/**
|
|
* 生成订单编号
|
|
*
|
|
* @param array $site_id
|
|
*/
|
|
public function createOrderNo($site_id, $member_id = 0)
|
|
{
|
|
$time_str = date('YmdHi');
|
|
$max_no = Cache::get($site_id . "_" . $member_id . "_" . $time_str);
|
|
if (!isset($max_no) || empty($max_no)) {
|
|
$max_no = 1;
|
|
} else {
|
|
$max_no = $max_no + 1;
|
|
}
|
|
$order_no = $time_str . $member_id . sprintf("%03d", $max_no);
|
|
Cache::set($site_id . "_" . $member_id . "_" . $time_str, $max_no);
|
|
return $order_no;
|
|
}
|
|
}
|