diff --git a/Laravel/app/Http/Controllers/API/H5/HomeController.php b/Laravel/app/Http/Controllers/API/H5/HomeController.php
index 88e8f35..1f1732d 100644
--- a/Laravel/app/Http/Controllers/API/H5/HomeController.php
+++ b/Laravel/app/Http/Controllers/API/H5/HomeController.php
@@ -23,7 +23,7 @@ class HomeController extends Controller
public function config()
{
$hospitals = DB::table('hospitals')
- ->select("id", "name", "latitude", "longitude", "logo")
+ ->select("id", "name", "latitude", "longitude", "logo","address")
->where(['status' => 1, 'is_del' => 0])->get();
if (count($hospitals) < 1) return \Yz::echoError1('暂无可用医院信息');
$db_config = DB::table('configs')->whereIn('label', ['首页欢迎词', '首页banner'])->get();
@@ -49,7 +49,7 @@ class HomeController extends Controller
], [
'message' => '',
'name' => '单位体检预约',
- 'jump' => '/pages/main/cjwt/cjwt',
+ 'jump' => '/pages/main/optionalProject/choose',
'icon' => '/assets/h5/tuanjianyuyue.png'
]],
'button' => [[[
diff --git a/Laravel/app/Http/Controllers/API/H5/PayController.php b/Laravel/app/Http/Controllers/API/H5/PayController.php
index 67d047a..aa6d39a 100644
--- a/Laravel/app/Http/Controllers/API/H5/PayController.php
+++ b/Laravel/app/Http/Controllers/API/H5/PayController.php
@@ -103,6 +103,7 @@ class PayController extends Controller
'orderid'=>$orderInfo->order_number,
'refund_order_id'=>'T'.$orderInfo->order_number,
'refund_amount'=>(int)($orderInfo->true_price * 100),
+ 'refund_reason'=>"体检H5订单退款",
];
$XCX = new XCXApiController();
$res = $XCX::Post('订单退款', $data);
diff --git a/Laravel/app/Http/Controllers/API/H5/UserController.php b/Laravel/app/Http/Controllers/API/H5/UserController.php
index c9cc7d7..ffeba92 100644
--- a/Laravel/app/Http/Controllers/API/H5/UserController.php
+++ b/Laravel/app/Http/Controllers/API/H5/UserController.php
@@ -36,6 +36,8 @@ class UserController extends Controller
$info = [
'name' => isset($default_person->name)? $default_person->name:null,
'sex' => isset($default_person->sex)?$default_person->sex:null,
+ 'phone'=>$default_person->phone,
+ 'id_number'=>$default_person->id_number,
'count' => $count,
'openid' => $openid,
];
@@ -98,6 +100,16 @@ class UserController extends Controller
}
+ public function tttt(){
+ $XCX=new XCXApiController();
+ $data=[
+ 'wxid'=>'oosgJj-SVIxTrm_g1p213tsSHK5g'
+ ];
+ $res=$XCX::Post('就诊人列表',$data);
+ $ApiPersonList=$res['data'];
+ // dd($ApiPersonList[0]);
+ $XCX::XCXDecode($ApiPersonList[0]['idNumber']);
+}
//更新用户列表,调用远程小程序接口
public function UpdatePersonList($openid)
{
@@ -105,26 +117,28 @@ class UserController extends Controller
$data=[
'wxid'=>$openid
];
- $list=$XCX::Post('就诊人列表',$data);
+// $res=$XCX::Post('就诊人列表',$data);
+// $ApiPersonList=$res['data'];
+ // dd($ApiPersonList);
$ApiPersonList = [
[
'ghzid' => 'ghz11',
- 'id_number'=>'15210219920524154X',
+ 'idNumber'=>'15210219920524154X',
'name' => '周京京',
'phone' => '11111111111',
'sex' => '1',
'birthday' => '1989-01-01',
- 'patient_type' => '0',
+ 'patientType' => '0',
'marriage' => '1',
],
[
'ghzid' => 'ghz22',
- 'id_number'=>'1132112432432',
+ 'idNumber'=>'460026199002190013',
'name' => '测试2',
'phone' => '222222222',
'sex' => '1',
'birthday' => '1990-01-01',
- 'patient_type' => '1',
+ 'patientType' => '1',
'marriage' => '1',
]
];
@@ -145,16 +159,23 @@ class UserController extends Controller
$onlyInApi = array_diff($api_person_ghzids, $db_person_ghzids);
$success_count=0;
foreach ($ApiPersonList as $apiperson) {
+ $marriage=0;
+ if($apiperson['marriage']=='未婚'){
+ $marriage=2;
+ }
+ if($apiperson['marriage']=='已婚'){
+ $marriage=1;
+ }
$personInfo = [
'ghzid' => $apiperson['ghzid'],
- 'id_number' => $apiperson['id_number'],
+ 'id_number' => $apiperson['idNumber'],
'name' => $apiperson['name'],
'birthday' => $apiperson['birthday'],
'sex' => $apiperson['sex'],
- 'phone' => $apiperson['phone'],
- 'married' => $apiperson['marriage'],
+ 'phone' => $apiperson['phone'],
+ 'married' =>$marriage,
'user_id' => $user->id,
- 'patient_type' => $apiperson['patient_type'],
+ 'patient_type' => $apiperson['patientType'],
'updated_at'=>date('Y-m-d H:i:s')
];
if (in_array($apiperson['ghzid'], $intersection)) {//双方都有的,更新
diff --git a/Laravel/app/Http/Controllers/API/XCXApiController.php b/Laravel/app/Http/Controllers/API/XCXApiController.php
index c41ba20..6599bd2 100644
--- a/Laravel/app/Http/Controllers/API/XCXApiController.php
+++ b/Laravel/app/Http/Controllers/API/XCXApiController.php
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
@@ -28,16 +29,17 @@ class XCXApiController extends Controller
public static function Post($url_code, $data)
{
+
$url_address = self::Api($url_code);
- self::RequestLog(self::$baseUrl.$url_address, $data, $url_code, '小程序接口');
+ self::RequestLog(self::$baseUrl . $url_address, $data, $url_code, '小程序接口');
$timestamp = time();
$nonce = md5(uniqid(rand(), true));
- $base64Signature = self::Sign( $url_address, $data, $nonce, $timestamp);
+ $base64Signature = self::Sign($url_address, $data, $nonce, $timestamp);
$response = Http::withHeaders([
'Authorization' => self::BuildAuthorization($nonce, $timestamp, $base64Signature)
- ])->post(self::$baseUrl.$url_address, $data);
+ ])->post(self::$baseUrl . $url_address, $data);
- // dd($response);
+ // dd(self::BuildAuthorization($nonce, $timestamp, $base64Signature));
if ($response->successful()) {
// 处理成功的响应
$res_string = json_encode($response->json(), JSON_UNESCAPED_UNICODE);
@@ -48,11 +50,21 @@ class XCXApiController extends Controller
if ($str_size > 10) $save_res = '{"data":"Row size too large"}';
self::$request->response_data = $save_res;
self::$request->save();
- } else {
+ $res = json_decode($res_string, true);
+ if (!$res['success']) {
+ throw new HttpResponseException(\Yz::echoError1("小程序接口提示:" . $res['message']));
+ }
+ return [
+ 'code' => $res['code'],
+ 'message' => $res['message'],
+ 'data' => $res['result']
+ ];
+ } else {
// 处理失败的响应
- self::$request->response_data = "请求失败";
+ self::$request->response_data = "请求小程序接口失败";
self::$request->save();
+ throw new HttpResponseException(\Yz::echoError1("请求小程序接口失败"));
}
}
@@ -105,35 +117,35 @@ class XCXApiController extends Controller
}
//计算签名和 Authorization
- public static function Sign($url, $data, $nonce, $timestamp,$is_urlencode=false)
+ public static function Sign($url, $data, $nonce, $timestamp, $is_urlencode = false)
{
$body = self::buildSortedQueryString($data);
$method = 'POST';
- // $method = 'POST';
- // $url = '/jeecg-boot/hospital/openapi/archive/list';
- // $timestamp = "1726880312";
- // $nonce = '88e5928d0c34aa0e9cb0bade72f83a67';
- // $body = 'wxid=oosgJj-SVIxTrm_g1p213tsSHK5g';
+ // $method = 'POST';
+ // $url = '/jeecg-boot/hospital/openapi/archive/list';
+ // $timestamp = "1726880312";
+ // $nonce = '88e5928d0c34aa0e9cb0bade72f83a67';
+ // $body = 'wxid=oosgJj-SVIxTrm_g1p213tsSHK5g';
$private_key = Storage::get('keys/private_key.pem');
$SignStr = $method . "\n" .
$url . "\n" .
$timestamp . "\n" .
$nonce . "\n" .
- $body;
-//dd($SignStr);
+ urldecode($body) . "\n";
+
// 使用私钥进行 RSA 签名
openssl_sign($SignStr, $signature, $private_key, OPENSSL_ALGO_SHA256);
- if($is_urlencode){
- $signature= urlencode($signature);
+ if ($is_urlencode) {
+ $signature = urlencode($signature);
}
// 对签名结果进行 Base64 编码
$base64Signature = base64_encode($signature);
- // dd($base64Signature);
+ // dd($SignStr,$base64Signature);
return $base64Signature;
}
@@ -146,5 +158,21 @@ class XCXApiController extends Controller
return self::$signType . ' ' . $signInfo;
}
+ //解密
+ public static function XCXDecode($str)
+ {
+ $private_key = Storage::get('keys/private_key.pem');
+ $str = "mZd4Nds9jyKxGfjId+eQAQ3WBMZbjEZg4Plq2Qz62W+AZvcDCAjkOL8VRAxNWXTwsrCNkMf07tMoY1NPzPgob00SfOJwVeM7SxqwH4PWKqkm5+Rg4g+eciepst66ToPI2ArgZutnb3XlcOqF8Mzlvz53GgDe/6VFQDaFATj1DOrEMyPgF85FY18lHWH5HKC1ctOMC/FTwTISJ0QPMSpYiBu8hWr4mTkYzY5nFkxv+M4q30IeAvJocCuIFnEa8t8iU6cvixe0HJofLug7fJJb8PEwPhJRMIocME1knETKszhI7YgSBj9RlBkwzLhtG2RCCZbHiK4UOK7HrvthXyJI/A==";
+ $str = base64_decode($str);
+ // dd($str);
+ if (openssl_private_decrypt($str, $decryptedData, $private_key, OPENSSL_PKCS1_OAEP_PADDING)) {
+ dd($decryptedData);
+ return $decryptedData;
+
+ } else {
+ throw new HttpResponseException(\Yz::echoError1("解密数据失败"));
+ }
+ }
+
}
diff --git a/Laravel/routes/web.php b/Laravel/routes/web.php
index 95f20f8..1a5a86a 100644
--- a/Laravel/routes/web.php
+++ b/Laravel/routes/web.php
@@ -68,6 +68,8 @@ Route::group(['prefix' => 'api/H5'], function () {
//测试----------------------------
Route::post('/Finish_test', 'App\Http\Controllers\API\H5\OrderController@Finish_test');//测试
+ Route::post('/tttt', 'App\Http\Controllers\API\H5\UserController@tttt');//测试
+
});
diff --git a/h5/pages/main/index/index.vue b/h5/pages/main/index/index.vue
index 4281eb3..28ad8cd 100644
--- a/h5/pages/main/index/index.vue
+++ b/h5/pages/main/index/index.vue
@@ -15,6 +15,7 @@
import {
onShow
} from '@dcloudio/uni-app'
+ import wx from 'weixin-js-sdk'
import {
useStore
} from '@/store'
@@ -186,6 +187,15 @@
}
}
}
+ const OpenMap=()=>{
+ console.log($store.config.hospital[0]);
+ let hospital=$store.config.hospital[0];
+ let p='&longitude='+hospital.longitude+'&latitude='+hospital.latitude+'&name='+hospital.name+'&address='+hospital.address+'&scale=16'+'&type=gcj02'
+ console.log(p);
+ wx.miniProgram.navigateTo({
+ url: '/pages/other/entry/index?path=/pages/physical-examination/location/index'+p
+ })
+ };
onShow(() => {
if (!!user_box_ref.value) {
@@ -206,7 +216,7 @@
- {{ hospital_info.name }}
+ {{ hospital_info.name }}
{{ hospital_info.long }}km
diff --git a/h5/pages/main/order/CheckPay.vue b/h5/pages/main/order/CheckPay.vue
index 2b7a593..b72a87f 100644
--- a/h5/pages/main/order/CheckPay.vue
+++ b/h5/pages/main/order/CheckPay.vue
@@ -26,7 +26,7 @@
})
uni.hideLoading()
$response(response, () => {
-
+ console.log(response);
})
}
onLoad((option) => {
diff --git a/h5/pages/main/order/src/order.vue b/h5/pages/main/order/src/order.vue
index a6a4fe5..464b11e 100644
--- a/h5/pages/main/order/src/order.vue
+++ b/h5/pages/main/order/src/order.vue
@@ -51,6 +51,17 @@
order_info.value.status = 3
}
}
+ const StartPay=async(id)=>{//继续支付
+ uni.showLoading()
+ const response = await $api('StartPay' ,{
+ openid: localStorage.getItem('OPENID'),
+ id: id,
+ })
+ uni.hideLoading()
+ $response(response, () => {
+ order_list.value = response.data.list
+ })
+ }
onMounted(() => {
deepInfo()
@@ -117,7 +128,7 @@
- 继续付款
+ 继续付款
改约
退款