Files
kelfy-mini/pages/yib/yib.js
2025-11-13 13:39:24 +08:00

280 lines
6.5 KiB
JavaScript

const util = require('../../utils/util.js');
const api = require('../../config/api.js');
var app = getApp()
Page({
data: {
objs:{},
optionsData:{},
paramsDatas:{},
radio:'',
list:{},
areadly:true,
prescriptionList: [],
actionsheetVisible: false,
hosp_out_trade_no:'',
},
handleActionsheet() {
this.actionsheetVisible = !this.actionsheetVisible;
this.setData({
actionsheetVisible: this.actionsheetVisible
});
},
//取消预结算
CancelPreSettlement(){
let payOrdId = ''
let payToken = ''
let zfjsbz = ''
if(this.data.radio==0){
payOrdId = this.data.list.payOrdId
payToken = this.data.list.payToken
zfjsbz = '0'
}else{
payOrdId = ''
payToken = ''
zfjsbz = '1'
}
let dataList = {
jssjh:this.data.list.detail.sjh,
payOrdId:payOrdId,
payToken:payToken,
zfjsbz:zfjsbz
}
wx.request({
url: 'https://fy.btlsoln.com:8443/CancelPreSettlement',
method:"POST",
data:dataList,
header:{
'content-type':'application/json'
},
success: (res)=> {
console.log(res,'取消预结算')
}
})
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
},
payMoney(moneyData) {
let orderId = this.data.objs.orderId
let {hosp_out_trade_no} = this.data.list
wx.requestPayment({
timeStamp:moneyData.timeStamp,
nonceStr:moneyData.nonceStr,
package:moneyData.package,
signType:'MD5',
paySign:moneyData.paySign,
success(res) {
app.globalData.areadly = false
wx.navigateTo({
url:'/pages/wxDetail/wxDetail?hosp_out_trade_no='+hosp_out_trade_no
})
},
fail(res) {
wx.showToast({
title: "支付失败!",
icon: "error"
})
app.globalData.areadly = false
wx.navigateTo({
url:'/pages/wxDetail/wxDetail?hosp_out_trade_no='+hosp_out_trade_no
})
}
})
},
//微信点击去支付
pay(){
if(this.data.radio==0){
this.ybpay()
}else{
this.wxpay()
}
},
//普通支付
wxpay(){
let {sjh,ysje,zfje,zje,patid} = this.data.list.detail
let {hosp_out_trade_no} = this.data.list
// console.log(this.data.list,'微信支付')
let reqDTO = {
// tradeNo:this.data.objs.orderId,
tradeNo:hosp_out_trade_no,
orderTitle:'',
openid:app.globalData.openId,
total_fee:zje,
sjh:sjh,
ysje:ysje,
zfje:zfje,
patid:patid
}
wx.request({
url: 'https://fy.btlsoln.com:8443/api/wxpay/wxAppletPay',
method:"POST",
data:reqDTO,
header:{
'content-type':'application/json'
},
success: (res)=> {
if(res.data.errCode==0){
// wx.setStorageSync('hosp_out_trade_no', hosp_out_trade_no)
this.payMoney(res.data.data)
}else{
wx.showModal({
content:res.data.errMsg ,
showCancel: false,
confirmText: '确定',
confirmColor: '#3CC51F',
success (res) {
if (res.confirm) {
console.log('用户点击确定')
}
}
})
}
}
})
},
//医保支付
ybpay(){
let {patid,ysje} = this.data.list.detail
let pay_type = ''
if(this.data.list.detail.zfje>0){
pay_type = 3
}else{
pay_type = 2
}
let num = app.globalData.datas
let loaction = num.user_longitude_latitude.longitude+','+num.user_longitude_latitude.latitude
let {zfje,ybzf,zhzf,sjh,zje,yjjzf} = this.data.list.detail
let {gmt_out_create,payOrdId,payToken,hosp_out_trade_no} = this.data.list
let reqDTO = {
cash_fee:ysje,
city_id:num.city_id,
gmt_out_create:gmt_out_create,
hosp_out_trade_no:hosp_out_trade_no,
ybzf:ybzf,
zhzf:zhzf,
yjjzf:yjjzf,
openid:app.globalData.openId,
pay_type:pay_type,
request_content:JSON.stringify({payAuthNo:num.pay_auth_no,payOrdId:payOrdId,setlLatlnt:loaction}),
return_url:'pages/newChatDetail/newChatDetail?hosp_out_trade_no='+hosp_out_trade_no,
serial_no:sjh,
total_fee:zje,
user_card_no:num.user_card_no,
user_name:num.user_name,
patid:patid,
payOrdId:payOrdId,
payToken:payToken,
ysje:ysje
}
reqDTO = JSON.stringify(reqDTO)
wx.request({
url: 'https://fy.btlsoln.com:8443/api/wxybpay/ybAppletPay',
method:"POST",
data:reqDTO,
header:{
'content-type':'application/json'
},
success: (res)=> {
if(res.data.errCode==0){
app.globalData.areadly = false
wx.setStorageSync('hosp_out_trade_no', hosp_out_trade_no)
wx.navigateToMiniProgram({
appId:res.data.data.pay_appid,
path:res.data.data.pay_url,
envVersion: 'release',
success(res) {
console.log('跳转成功')
// wx.navigateTo({
// url: 'pages/newChatDetail/newChatDetail?hosp_out_trade_no='+this.globalData.hosp_out_trade_no,
// })
},
})
}
}
})
},
onLoad(options) {
let a = JSON.parse(options.obj)
let b = a.detail.map(item=>{
item.xmsl = Math.trunc(item.xmsl)
return item
})
let list = JSON.parse(options.list)
this.setData({objs:a,radio:options.radioValue,prescriptionList:b,list:list})
console.log(a, "a");
let xx = a;
a.sjh = list.detail.sjh;
console.log(xx, "xx");
this.updateTJ(xx, list);
this.updatekf(xx, list);
},
updatekf(xx, list){
util.requestPost(api.kfconfirmOrder, {
patid: xx.patid,
detail: xx.detail,
orderId: list.hosp_out_trade_no,
sjh: xx.sjh
})
.then(function(res) {
console.log(res);
if (res.code === 0) {
console.log("confirmOrder res:");
console.log(res);
}
else{
}
});
},
updateTJ(xx, list){
util.requestPost(api.confirmOrder, {
patid: xx.patid,
detail: xx.detail,
orderId: list.hosp_out_trade_no,
sjh: xx.sjh
})
.then(function(res) {
console.log(res);
if (res.code === 0) {
console.log("confirmOrder res:");
console.log(res);
}
else{
}
});
},
onShow() {
},
onUnload() {
if(app.globalData.areadly && this.data.radio!=0){
this.CancelPreSettlement()
}else{
}
},
})