获取患者订单支付数据接口新增服务包订单支付数据获取。
This commit is contained in:
@@ -28,6 +28,7 @@ use App\Model\OrderProduct;
|
||||
use App\Model\OrderProductCoupon;
|
||||
use App\Model\OrderProductItem;
|
||||
use App\Model\OrderProductLogistic;
|
||||
use App\Model\OrderServicePackage;
|
||||
use App\Model\PatientFamily;
|
||||
use App\Model\PatientFamilyHealth;
|
||||
use App\Model\PatientFamilyPersonal;
|
||||
@@ -770,8 +771,8 @@ class PatientOrderService extends BaseService
|
||||
$result['pay_config'] = []; // 小程序支付配置
|
||||
$result['cannot_use_coupon_reason'] = ""; // 不可使用优惠卷原因
|
||||
|
||||
// 问诊订单
|
||||
if ($order_type == 1) {
|
||||
// 问诊订单
|
||||
$params = array();
|
||||
$params['inquiry_no'] = $order_no;
|
||||
$params['patient_id'] = $user_info['client_user_id'];
|
||||
@@ -784,6 +785,7 @@ class PatientOrderService extends BaseService
|
||||
if ($order_inquiry['inquiry_status'] != 1) {
|
||||
$return_result['message'] = "订单状态错误";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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'];
|
||||
@@ -794,6 +796,7 @@ class PatientOrderService extends BaseService
|
||||
if ($order_inquiry['inquiry_pay_status'] != 1) {
|
||||
$return_result['message'] = "订单支付状态错误";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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'];
|
||||
@@ -805,6 +808,7 @@ class PatientOrderService extends BaseService
|
||||
if ($diff_time >= 30) {
|
||||
$return_result['message'] = "订单已过期";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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'];
|
||||
@@ -835,8 +839,10 @@ class PatientOrderService extends BaseService
|
||||
// 获取小程序支付配置
|
||||
$pay_config = $WechatPay->getAppletsPayConfig($prepay['prepay_id']);
|
||||
}
|
||||
} elseif ($order_type == 2) {
|
||||
// 药品订单
|
||||
}
|
||||
|
||||
// 药品订单
|
||||
if ($order_type == 2) {
|
||||
$params = array();
|
||||
$params['order_product_no'] = $order_no;
|
||||
$params['patient_id'] = $user_info['client_user_id'];
|
||||
@@ -849,6 +855,7 @@ class PatientOrderService extends BaseService
|
||||
if ($order_product['order_product_status'] != 1) {
|
||||
$return_result['message'] = "订单状态错误";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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'];
|
||||
@@ -859,6 +866,7 @@ class PatientOrderService extends BaseService
|
||||
if ($order_product['pay_status'] != 1) {
|
||||
$return_result['message'] = "订单支付状态错误";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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']['order_pay_status'] = $order_product['pay_status'];
|
||||
@@ -870,6 +878,7 @@ class PatientOrderService extends BaseService
|
||||
if ($diff_time >= 30) {
|
||||
$return_result['message'] = "订单已过期";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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']['order_pay_status'] = $order_product['pay_status'];
|
||||
@@ -896,6 +905,7 @@ class PatientOrderService extends BaseService
|
||||
if (empty($order_prescription_products)) {
|
||||
$return_result['message'] = "优惠卷数据错误";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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']['order_pay_status'] = $order_product['pay_status'];
|
||||
@@ -909,6 +919,7 @@ class PatientOrderService extends BaseService
|
||||
if (empty($product)) {
|
||||
$return_result['message'] = "优惠卷数据错误";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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']['order_pay_status'] = $order_product['pay_status'];
|
||||
@@ -943,8 +954,10 @@ class PatientOrderService extends BaseService
|
||||
// 获取小程序支付配置
|
||||
$pay_config = $WechatPay->getAppletsPayConfig($prepay['prepay_id']);
|
||||
}
|
||||
} elseif ($order_type == 3) {
|
||||
// 检测订单
|
||||
}
|
||||
|
||||
// 检测订单
|
||||
if ($order_type == 3) {
|
||||
// 获取检测订单数据
|
||||
$params = array();
|
||||
$params['detection_no'] = $order_no;
|
||||
@@ -958,6 +971,7 @@ class PatientOrderService extends BaseService
|
||||
if ($order_detection['detection_status'] != 1) {
|
||||
$return_result['message'] = "订单状态错误";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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'];
|
||||
@@ -968,6 +982,7 @@ class PatientOrderService extends BaseService
|
||||
if ($order_detection['detection_pay_status'] != 1) {
|
||||
$return_result['message'] = "订单支付状态错误";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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'];
|
||||
@@ -979,6 +994,7 @@ class PatientOrderService extends BaseService
|
||||
if ($diff_time >= 30) {
|
||||
$return_result['message'] = "订单已过期";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$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'];
|
||||
@@ -1007,8 +1023,75 @@ class PatientOrderService extends BaseService
|
||||
$pay_config = $WechatPay->getAppletsPayConfig($prepay['prepay_id']);
|
||||
}
|
||||
|
||||
} else {
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 服务包订单
|
||||
if ($order_type == 4 || $order_type == 5) {
|
||||
// 获取检测订单数据
|
||||
$params = array();
|
||||
$params['order_service_no'] = $order_no;
|
||||
$params['patient_id'] = $user_info['client_user_id'];
|
||||
$order_service_package = OrderServicePackage::getOne($params);
|
||||
if (empty($order_service_package)) {
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "非法订单");
|
||||
}
|
||||
|
||||
// 验证订单状态
|
||||
if ($order_service_package['order_service_status'] != 1) {
|
||||
$return_result['message'] = "订单状态错误";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$return_result['data']['order_id'] = $order_service_package['order_service_id'];
|
||||
$return_result['data']['order_status'] = $order_service_package['order_service_status'];
|
||||
$return_result['data']['order_pay_status'] = $order_service_package['pay_status'];
|
||||
return success($return_result);
|
||||
}
|
||||
|
||||
// 验证订单支付状态
|
||||
if ($order_detection['pay_status'] != 1) {
|
||||
$return_result['message'] = "订单支付状态错误";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$return_result['data']['order_id'] = $order_service_package['order_service_id'];
|
||||
$return_result['data']['order_status'] = $order_service_package['order_service_status'];
|
||||
$return_result['data']['order_pay_status'] = $order_service_package['pay_status'];
|
||||
return success($return_result);
|
||||
}
|
||||
|
||||
// 验证订单过期支付时间
|
||||
$diff_time = (strtotime($order_service_package['created_at']) - time()) / 60;
|
||||
if ($diff_time >= 30) {
|
||||
$return_result['message'] = "订单已过期";
|
||||
$return_result['data'] = $result;
|
||||
$return_result['data']['order_no'] = $order_no;
|
||||
$return_result['data']['order_id'] = $order_service_package['order_service_id'];
|
||||
$return_result['data']['order_status'] = $order_service_package['order_service_status'];
|
||||
$return_result['data']['order_pay_status'] = $order_service_package['pay_status'];
|
||||
return success($return_result);
|
||||
}
|
||||
|
||||
$result['order_id'] = $order_service_package['order_service_id'];
|
||||
$result['created_at'] = $order_service_package['created_at'];
|
||||
|
||||
// 获取订单金额
|
||||
$result['amount_total'] = $order_service_package['amount_total']; // 订单金额
|
||||
$result['payment_amount_total'] = $order_service_package['amount_total'] - 0; // 实际订单金额
|
||||
$result['coupon_amount_total'] = 0; // 优惠金额
|
||||
|
||||
if ($order_service_package['payment_amount_total'] > 0) {
|
||||
// 发起支付
|
||||
$WechatPay = new WechatPay(1, 3);
|
||||
|
||||
// 获取预支付交易会话标识
|
||||
$prepay = $WechatPay->getJsapiPrepayId($order_no, (int)round($order_service_package['payment_amount_total'] * 100), $user_info['open_id'], "检测服务");
|
||||
if (empty($prepay)) {
|
||||
return fail(HttpEnumCode::SERVER_ERROR);
|
||||
}
|
||||
|
||||
// 获取小程序支付配置
|
||||
$pay_config = $WechatPay->getAppletsPayConfig($prepay['prepay_id']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$result['pay_config'] = $pay_config ?? [];
|
||||
|
||||
Reference in New Issue
Block a user