修改微信支付类,新增检测订单获取支付数据

This commit is contained in:
2023-08-01 11:18:20 +08:00
parent ac9c3dee38
commit a1b0d6556c
3 changed files with 91 additions and 21 deletions
+79 -17
View File
@@ -8,6 +8,7 @@ use App\Constants\DoctorTitleCode;
use App\Constants\HttpEnumCode;
use App\Model\BasicLogisticsCompany;
use App\Model\Hospital;
use App\Model\OrderDetection;
use App\Model\OrderInquiry;
use App\Model\OrderInquiryCase;
use App\Model\OrderInquiryCoupon;
@@ -683,7 +684,7 @@ class PatientOrderService extends BaseService
$result['order_no'] = $order_no; // 订单编号
$result['order_id'] = ""; // 订单主键id(问诊订单:order_inquiry_id 药品订单:order_product_id
$result['created_at'] = ""; // 创建时间
$result['inquiry_type'] = 0; // 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
$result['inquiry_type'] = 0; // 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测
$result['pay_config'] = []; // 小程序支付配置
if ($order_type == 1) {
@@ -699,17 +700,18 @@ class PatientOrderService extends BaseService
// 验证订单状态
if ($order_inquiry['inquiry_status'] != 1) {
$return_result['message'] = "订单状态错误";
$return_result['data']['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$return_result['data']['inquiry_status'] = $order_inquiry['inquiry_status'];
$return_result['data']['inquiry_pay_status'] = $order_inquiry['inquiry_pay_status'];
$return_result['data']['order_id'] = $order_inquiry['order_inquiry_id'];
$return_result['data']['order_status'] = $order_inquiry['inquiry_status'];
$return_result['data']['order_pay_status'] = $order_inquiry['inquiry_pay_status'];
return success($return_result);
}
// 验证订单支付状态
if ($order_inquiry['inquiry_pay_status'] != 1) {
$return_result['message'] = "订单支付状态错误";
$return_result['data']['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$return_result['data']['inquiry_status'] = $order_inquiry['inquiry_status'];
$return_result['data']['inquiry_pay_status'] = $order_inquiry['inquiry_pay_status'];
$return_result['data']['order_id'] = $order_inquiry['order_inquiry_id'];
$return_result['data']['order_status'] = $order_inquiry['inquiry_status'];
$return_result['data']['order_pay_status'] = $order_inquiry['inquiry_pay_status'];
return success($return_result);
}
@@ -717,9 +719,9 @@ class PatientOrderService extends BaseService
$diff_time = (strtotime($order_inquiry['created_at']) - time()) / 60;
if ($diff_time >= 30){
$return_result['message'] = "订单已过期";
$return_result['data']['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$return_result['data']['inquiry_status'] = $order_inquiry['inquiry_status'];
$return_result['data']['inquiry_pay_status'] = $order_inquiry['inquiry_pay_status'];
$return_result['data']['order_id'] = $order_inquiry['order_inquiry_id'];
$return_result['data']['order_status'] = $order_inquiry['inquiry_status'];
$return_result['data']['order_pay_status'] = $order_inquiry['inquiry_pay_status'];
return success($return_result);
}
@@ -738,7 +740,7 @@ class PatientOrderService extends BaseService
// 获取预支付交易会话标识
$prepay = $WechatPay->getJsapiPrepayId($order_no, (int)round($order_inquiry['payment_amount_total'] * 100), $user_info['open_id']);
$prepay = $WechatPay->getJsapiPrepayId($order_no, (int)round($order_inquiry['payment_amount_total'] * 100), $user_info['open_id'],"问诊服务");
if (empty($prepay)) {
return fail(HttpEnumCode::SERVER_ERROR);
}
@@ -759,9 +761,9 @@ class PatientOrderService extends BaseService
// 验证订单状态
if ($order_product['order_product_status'] != 1) {
$return_result['message'] = "订单状态错误";
$return_result['data']['order_product_id'] = $order_product['order_product_id'];
$return_result['data']['order_product_status'] = $order_product['order_product_status'];
$return_result['data']['pay_status'] = $order_product['pay_status'];
$return_result['data']['order_id'] = $order_product['order_product_id'];
$return_result['data']['order_status'] = $order_product['order_product_status'];
$return_result['data']['order_pay_status'] = $order_product['pay_status'];
return success($return_result);
}
@@ -770,7 +772,7 @@ class PatientOrderService extends BaseService
$return_result['message'] = "订单支付状态错误";
$return_result['data']['order_product_id'] = $order_product['order_product_id'];
$return_result['data']['order_product_status'] = $order_product['order_product_status'];
$return_result['data']['pay_status'] = $order_product['pay_status'];
$return_result['data']['order_pay_status'] = $order_product['pay_status'];
return success($return_result);
}
@@ -780,7 +782,7 @@ class PatientOrderService extends BaseService
$return_result['message'] = "订单已过期";
$return_result['data']['order_product_id'] = $order_product['order_product_id'];
$return_result['data']['order_product_status'] = $order_product['order_product_status'];
$return_result['data']['pay_status'] = $order_product['pay_status'];
$return_result['data']['order_pay_status'] = $order_product['pay_status'];
return success($return_result);
}
@@ -797,7 +799,67 @@ class PatientOrderService extends BaseService
$WechatPay = new WechatPay(1,2);
// 获取预支付交易会话标识
$prepay = $WechatPay->getJsapiPrepayId($order_no, (int)round($order_product['payment_amount_total'] * 100), $user_info['open_id']);
$prepay = $WechatPay->getJsapiPrepayId($order_no, (int)round($order_product['payment_amount_total'] * 100), $user_info['open_id'],"问诊服务");
if (empty($prepay)) {
return fail(HttpEnumCode::SERVER_ERROR);
}
// 获取小程序支付配置
$pay_config = $WechatPay->getAppletsPayConfig($prepay['prepay_id']);
}
} elseif ($order_type == 3) {
// 检测订单
// 获取检测订单数据
$params = array();
$params['detection_no'] = $order_no;
$params['patient_id'] = $user_info['client_user_id'];
$order_detection = OrderDetection::getOne($params);
if (empty($order_detection)) {
return fail(HttpEnumCode::HTTP_ERROR, "非法订单");
}
// 验证订单状态
if ($order_detection['detection_status'] != 1) {
$return_result['message'] = "订单状态错误";
$return_result['data']['order_id'] = $order_detection['order_detection_id'];
$return_result['data']['order_status'] = $order_detection['detection_status'];
$return_result['data']['order_pay_status'] = $order_detection['detection_pay_status'];
return success($return_result);
}
// 验证订单支付状态
if ($order_detection['inquiry_pay_status'] != 1) {
$return_result['message'] = "订单支付状态错误";
$return_result['data']['order_id'] = $order_detection['order_detection_id'];
$return_result['data']['order_status'] = $order_detection['detection_status'];
$return_result['data']['order_pay_status'] = $order_detection['detection_pay_status'];
return success($return_result);
}
// 验证订单过期支付时间
$diff_time = (strtotime($order_detection['created_at']) - time()) / 60;
if ($diff_time >= 30){
$return_result['message'] = "订单已过期";
$return_result['data']['order_id'] = $order_detection['order_detection_id'];
$return_result['data']['order_status'] = $order_detection['detection_status'];
$return_result['data']['order_pay_status'] = $order_detection['detection_pay_status'];
return success($return_result);
}
$result['order_id'] = $order_detection['order_detection_id'];
$result['created_at'] = $order_detection['created_at'];
// 获取订单金额
$result['amount_total'] = $order_detection['amount_total']; // 订单金额
$result['payment_amount_total'] = $order_detection['amount_total']; // 实际订单金额
$result['coupon_amount_total'] = 0; // 优惠金额
if ($order_detection['payment_amount_total'] > 0 ){
// 发起支付
$WechatPay = new WechatPay(1,3);
// 获取预支付交易会话标识
$prepay = $WechatPay->getJsapiPrepayId($order_no, (int)round($order_detection['payment_amount_total'] * 100), $user_info['open_id'],"检测服务");
if (empty($prepay)) {
return fail(HttpEnumCode::SERVER_ERROR);
}