串联支付

wenjuan
yanzai 1 year ago
parent c20502bea4
commit a460fcae62

@ -57,6 +57,7 @@ class ApiMapController extends Controller
'GetMonthPlanCount' => $base_url . '/api/H5/GetMonthPlanCount',//按月获取每日号源
'GetDayPlanList' => $base_url . '/api/H5/GetDayPlanList',//获取每日号源
'ComboCompare' => $base_url . '/api/H5/ComboCompare',//套餐对比
'GetOrderDetail' => $base_url . '/api/H5/GetOrderDetail',//获取订单详情
];
}

@ -58,9 +58,9 @@ class HomeController extends Controller
'jump' => '/pages/main/cjwt/cjwt',
'icon' => '/assets/h5/changjianwenti.png'
], [
'message' => '',
'message' => '暂未开放',
'name' => '预检咨询',
'jump' => 'XCX/pages/other/entry/index?path=/pages/outpatient/doctor-appointment/index&scene=1035&hospitalAreaId=6&departmentCode=A0030077&subDepartmentCode=4773794195699464904',
'jump' => '/pages/main/cjwt/cjwt',
'icon' => '/assets/h5/changjianwenti.png'
], [
'message' => '暂未开放',
@ -73,9 +73,9 @@ class HomeController extends Controller
'jump' => '/pages/main/cjwt/cjwt',
'icon' => '/assets/h5/changjianwenti.png'
]], [[
'message' => '暂未开放',
'message' => '',
'name' => '解读报告',
'jump' => '/pages/main/cjwt/cjwt',
'jump' => 'XCX/pages/other/entry/index?path=/pages/outpatient/doctor-appointment/index&scene=1035&hospitalAreaId=6&departmentCode=A0030077&subDepartmentCode=4773794195699464904',
'icon' => '/assets/h5/changjianwenti.png'
], [
'message' => '暂未开放',

@ -30,66 +30,19 @@ class OrderController extends Controller
$list->end_time = $timestamp + (60 * $WaitingPaymentTime);
}
}
$list = [[
'id' => 1,
'title' => '测试套餐1',
'status' => 1,
'name' => '陆予',
'time' => '2024-08-05 08:00:00',
'order' => '1234567890987654321',
'type' => '个检',
'price' => '4999.99',
'true_price' => '4999.99',
'end_time' => time() + (60 * 20)
], [
'id' => 1,
'title' => '测试套餐2',
'status' => 2,
'name' => '陆予',
'time' => '2024-08-05 08:00:00',
'order' => '1234567890987654321',
'type' => '个检',
'price' => '4999.99',
'true_price' => '4999.99',
'pay_time' => '2024-08-06 08:00:00'
], [
'id' => 1,
'title' => '测试套餐2',
'status' => 3,
'name' => '陆予',
'time' => '2024-08-05 08:00:00',
'order' => '1234567890987654321',
'type' => '个检'
], [
'id' => 1,
'title' => '测试套餐2',
'status' => 4,
'name' => '陆予',
'time' => '2024-08-05 08:00:00',
'order' => '1234567890987654321',
'type' => '团检',
'price' => '4999.99',
'true_price' => '0.01',
'pay_time' => '2024-08-06 08:00:00',
'report' => true,
'decode' => 0,
], [
'id' => 1,
'title' => '测试套餐2',
'status' => 5,
'name' => '陆予',
'time' => '2024-08-05 08:00:00',
'order' => '1234567890987654321',
'type' => '团检',
'price' => '4999.99',
'true_price' => '0.01',
'refund_time' => '2024-08-06 08:00:00'
]];
return \Yz::Return(true, '获取成功', [
'list' => $OrderList
]);
}
public function GetDetail()
{
$id = request('id');
$order_info = DB::table('orders')->where(['id' => $id])->first();
return \Yz::Return(true, '获取成功', [
'info' => $order_info
]);
}
//创建订单
public function Create()
@ -342,7 +295,7 @@ class OrderController extends Controller
//最后步骤,开始通知思信预约
public function Finish($order_number)
{
$order_info = DB::table('orders')->where(['order_number' => $order_number, 'status' => 1])->first();
$order_info = DB::table('orders')->where(['order_number' => $order_number])->first();
if (!$order_info) return ['status' => false, 'msg' => "未找到有效订单"];
$buy_info = json_decode($order_info->buy_info, true);
$combo_id = $buy_info['combo']['id'];
@ -392,11 +345,14 @@ class OrderController extends Controller
"可选项目信息" => $item_arr
];
}
//更新订单状态为已支付, 支付流水号在 上一步(方法)更新,
DB::table('orders')->where(['order_number' => $order_number])->update([
//如果是 如果订单未支付 在这里更新订单状态为已支付。
DB::table('orders')->where(['order_number' => $order_number,'status'=>1])->update([
'status' => 2,
'pay_time' => date('Y-m-d H:i:s'),
]);
//查询确认订单已经是支付状态
$cha=DB::table('orders')->where(['order_number' => $order_number,'status'=>2])->first();
if(!$cha) return ['status' => false, 'msg' => "订单未支付,禁止预约"];
//把状态更新为支付后,然后再开始预约思信
$create_appointment = self::create_appointment($order_info->hospital_id, $cad);

@ -78,10 +78,14 @@ class PayController extends Controller
$res = $XCX::Post('订单查询', ['orderid'=>$order_number]);
//判断如果支付成功,更改订单状态
if($res['data']['trade_state']==='SUCCESS'){
DB::table('orders')->where(['order_number'=>$order_number])->update([
'status'=>2
$order=DB::table('orders')->where(['order_number'=>$order_number])->first();
DB::table('orders')->where(['id'=>$order->id])->update([
'status'=>2,
'pay_time' => date('Y-m-d H:i:s'),
]);
return \Yz::Return(true,"支付成功",[]);
$Finish=new OrderController();//预约体检
$Finish->Finish($order_number);
return \Yz::Return(true,"支付成功",['id'=>$order->id]);
}else{
return \Yz::echoError1("支付失败".$res['data']['trade_state']);
}
@ -93,7 +97,7 @@ class PayController extends Controller
//判断订单状态是否是已经支付,判断是否到检,
$openid = request('openid');
$id= request('id');
$orderInfo = DB::table('orders')->where(['id' => $id,])->first();
$orderInfo = DB::table('orders')->where(['id' => $id])->first();
if (!$orderInfo) return \Yz::echoError1("未找到有效订单");
if ($orderInfo->status !==2) return \Yz::echoError1("订单状态异常。当前状态:" . $orderInfo->status);
if ($orderInfo->check_status ==2) return \Yz::echoError1("已登记体检,禁止退款");
@ -108,13 +112,13 @@ class PayController extends Controller
];
$XCX = new XCXApiController();
$res = $XCX::Post('订单退款', $data);
if($res['refund_state']==='SUCCESS'){
if($res['data']['refund_state']==='SUCCESS'){
DB::table('orders')->where(['id'=>$id])->update([
'status'=>5
]);
return \Yz::Return(true,"退款成功",[]);
}else{
return \Yz::echoError1("退款失败".$res['refund_state']);
return \Yz::echoError1("退款失败".$res['data']['refund_state']);
}
}

@ -63,6 +63,7 @@ Route::group(['prefix' => 'api/H5'], function () {
Route::post('/StartPay', 'App\Http\Controllers\API\H5\PayController@StartPay');//开始支付接口
Route::post('/CheckPay', 'App\Http\Controllers\API\H5\PayController@CheckPay');//支付结果查询接口
Route::post('/Refund', 'App\Http\Controllers\API\H5\PayController@Refund');//退款
Route::post('/GetOrderDetail', 'App\Http\Controllers\API\H5\OrderController@GetDetail');//获取订单详情

@ -38,29 +38,40 @@
}
}
const order_info = ref({
status: 1,
combo_id: 1,
combo_name: '中心动脉硬化检测体检',
item_ids: [1, 2, 3, 4],
item_info: [{
name: '抽血1'
}, {
name: '抽血2'
}, {
name: '抽血3'
}, {
name: '抽血4'
}],
name: '周子轩',
id_number: '130322199409090090',
order_number: '1000034',
order_time: '2024-12-12 12:12:12',
type: '个检',
price: '300.00'
})
// const order_info = ref({
// status: 1,
// combo_id: 1,
// combo_name: '',
// item_ids: [1, 2, 3, 4],
// item_info: [{
// name: '1'
// }, {
// name: '2'
// }, {
// name: '3'
// }, {
// name: '4'
// }],
// name: '',
// id_number: '130322199409090090',
// order_number: '1000034',
// order_time: '2024-12-12 12:12:12',
// type: '',
// price: '300.00'
// })
const order_info = ref({})
const getOrderInfo = async () => {
uni.showLoading()
const response = await $api('GetOrderDetail', {
openid: localStorage.getItem('OPENID'),
id: $props.id,
})
uni.hideLoading()
$response(response, () => {
if (response.status) {
order_info.value=response.data.info
}
})
}
const toOrderList = () => {
@ -81,7 +92,7 @@
<view :ref="configRef"></view>
</view>
<view v-if="!!order_info">
<view v-if="order_info.status === 1" class="order_done_wrapper">
<view v-if="order_info.status === 2" class="order_done_wrapper">
<view class="order_icon_wrapper">
<view class="order_icon_image_wrapper">
<image src="@/static/assets/buy/buy_done@2x.png"></image>
@ -89,7 +100,7 @@
<view class="order_icon_tip_wrapper">恭喜您支付成功</view>
</view>
<view class="order_info_wrapper">
<view class="order_info_title_wrapper">{{ order_info.combo_name }}</view>
<view class="order_info_title_wrapper">{{ order_info.title }}</view>
<view class="order_info_line_wrapper">
<view class="order_info_label_wrapper">体检人</view>
<view class="order_info_value_wrapper">{{ order_info.name }}</view>
@ -104,15 +115,15 @@
</view>
<view class="order_info_line_wrapper">
<view class="order_info_label_wrapper">预约时间</view>
<view class="order_info_value_wrapper">{{ order_info.order_time }}</view>
<view class="order_info_value_wrapper">{{ order_info.appointment_date }} {{ order_info.appointment_time }}</view>
</view>
<view class="order_info_line_wrapper">
<view class="order_info_label_wrapper">类型</view>
<view class="order_info_value_wrapper">{{ order_info.type }}</view>
<view class="order_info_value_wrapper"><span v-if="order_info.type==1"></span><span v-if="order_info.type==2"></span></view>
</view>
<view class="order_info_price_wrapper">
<view class="order_info_label_wrapper">订单金额</view>
<view class="order_info_value_wrapper">¥{{ order_info.price }}</view>
<view class="order_info_value_wrapper">¥{{ order_info.true_price }}</view>
</view>
</view>
<view @click="toOrderList()" class="check_done_wrapper">确认并关闭</view>

@ -260,7 +260,7 @@
</view>
</view>
</view>
<view class="botm_blank_wrapper" style="font-size: 18rpx;color: #ccc;">09261439</view>
<view class="botm_blank_wrapper" style="font-size: 18rpx;color: #ccc;">09262059</view>
</view>
</view>
</template>

@ -31,7 +31,7 @@
title: '支付成功'
});
uni.redirectTo({
url: '/pages/main/order/order'
url: '/pages/buy/done/done?id='+response.data.id
});
}
})

Loading…
Cancel
Save