新增创建订单发起支付
This commit is contained in:
@@ -15,6 +15,7 @@ use App\Model\PatientFamilyPersonal;
|
||||
use App\Model\Product;
|
||||
use App\Model\UserDoctor;
|
||||
use App\Utils\PcreMatch;
|
||||
use Extend\Wechat\WechatPay;
|
||||
use Hyperf\Amqp\Producer;
|
||||
use Hyperf\DbConnection\Db;
|
||||
use Hyperf\Snowflake\IdGeneratorInterface;
|
||||
@@ -99,6 +100,14 @@ class InquiryService extends BaseService
|
||||
$CouponService = new CouponService();
|
||||
$user_coupon = $CouponService->getUserUsableCouponOne($user_info['user_id'], $request_params['inquiry_type']);
|
||||
|
||||
// 确定支付渠道
|
||||
// 支付渠道(1:小程序支付 2:微信扫码支付)
|
||||
if ($request_params['inquiry_pay_channel'] == 1){
|
||||
$inquiry_pay_channel = 1;
|
||||
}elseif ($request_params['inquiry_pay_channel'] == 2){
|
||||
$inquiry_pay_channel = 2;
|
||||
}
|
||||
|
||||
Db::beginTransaction();
|
||||
|
||||
$generator = $this->container->get(IdGeneratorInterface::class);
|
||||
@@ -117,6 +126,7 @@ class InquiryService extends BaseService
|
||||
$data['inquiry_type'] = $request_params['inquiry_type'];
|
||||
$data['inquiry_mode'] = $request_params['inquiry_mode'];
|
||||
$data['inquiry_status'] = 1;// 1:待支付
|
||||
$data['inquiry_pay_channel'] = $inquiry_pay_channel ?? 0;// 支付渠道(1:小程序支付 2:微信扫码支付)
|
||||
$data['inquiry_no'] = $generator->generate();// 订单编号
|
||||
$data['amount_total'] = $inquiry_price;// 订单金额
|
||||
$data['payment_amount_total'] = $payment_amount_total;// 实际付款金额
|
||||
@@ -230,19 +240,33 @@ class InquiryService extends BaseService
|
||||
}
|
||||
}
|
||||
|
||||
// 增加至退款延迟队列
|
||||
$data = array();
|
||||
$data['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
// 发起支付
|
||||
$WechatPay = new WechatPay(1);
|
||||
|
||||
$message = new CancelUnpayOrdersDelayDirectProducer($data);
|
||||
$message->setDelayMs(60 * 30 * 1000);
|
||||
$producer = $this->container->get(Producer::class) ;
|
||||
$res = $producer->produce($message);
|
||||
if(!$res){
|
||||
// 获取预支付交易会话标识
|
||||
$total = $inquiry_price * 100;
|
||||
$prepay = $WechatPay->getJsapiPrepayId($order_inquiry['inquiry_no'],$total,$user_info['open_id']);
|
||||
if (empty($prepay)){
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
|
||||
}
|
||||
|
||||
// 获取小程序支付配置
|
||||
$pay_config = $WechatPay->getAppletsPayConfig($prepay['prepay_id']);
|
||||
|
||||
// 增加至退款延迟队列
|
||||
// $data = array();
|
||||
// $data['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
//
|
||||
// $message = new CancelUnpayOrdersDelayDirectProducer($data);
|
||||
// $message->setDelayMs(60 * 30 * 1000);
|
||||
// $producer = $this->container->get(Producer::class) ;
|
||||
// $res = $producer->produce($message);
|
||||
// if(!$res){
|
||||
// Db::rollBack();
|
||||
// return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
|
||||
// }
|
||||
|
||||
Db::commit();
|
||||
} catch (\Exception $e) {
|
||||
Db::rollBack();
|
||||
@@ -255,6 +279,7 @@ class InquiryService extends BaseService
|
||||
$result['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; // 订单主键id
|
||||
$result['created_at'] = date('Y-m-d H:i:s',strtotime($order_inquiry['created_at'])); // 创建时间
|
||||
$result['inquiry_type'] = $order_inquiry['inquiry_type']; // 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
|
||||
$result['pay_config'] = $pay_config; // 小程序支付配置
|
||||
|
||||
return success($result);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user