鼠笼管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

244 lines
8.2 KiB

<?php
header("Content-type: text/html; charset=utf-8");
ini_set('date.timezone','Asia/Shanghai');
//error_reporting(E_ERROR);
require_once "../lib/WxPay.Api.php";
require_once "WxPay.JsApiPay.php";
require_once 'log.php';
require_once '../lib/Base.php';
//初始化日志
$logHandler= new CLogFileHandler("../logs/".date('Y-m-d').'.log');
$log = Log::Init($logHandler, 15);
//打印输出数组信息
function printf_info($data)
{
foreach($data as $key=>$value){
echo "<font color='#00ff55;'>$key</font> : $value <br/>";
}
}
function NumToStr($num){
if (stripos($num,'e')===false) return $num;
$num = trim(preg_replace('/[=\'"]/','',$num,1),'"');//出现科学计数法,还原成字符串
$result = "";
while ($num > 0){
$v = $num - floor($num / 10)*10;
$num = floor($num / 10);
$result = $v . $result;
}
return $result;
}
//①、获取用户openid
$tools = new JsApiPay();
// exit();
$openId = $tools->GetOpenid();
session_start();
//获取金额
$pFee = $_SESSION['premoney'];
// echo "<span>".$pFee."</span>";
$pBody = $_SESSION['body'];
$pCardNo = $_SESSION['cardno'];
$pRegID = $_SESSION['regId'];
$pRepeiceNo = $_SESSION['repeiceNo'];
$pOrder = $_SESSION['order'];
$pPatientID = $_SESSION['patientid'];
$pName = $_SESSION['name'];
$pPatientNO = $_SESSION['patientno'];
$tradeNo = NumToStr(WxPayConfig::MCHID.date("YmdHis"));
// echo "<span>".$pCardNo."</span>";
//微信订单表初始化
$tMO = new Model('wxorder');
$tTime = time();
$tDatas = $tMO->field('id')->where('out_trade_no = \''.$tradeNo.'\'')->select();
//查询卡号
$tMCMO = new Model('medical_card');
$tMCDatas = $tMCMO->field('med_c_card_no')->where('med_c_uid = '.$_SESSION['uid'])->select();
if(empty($pCardNo)) {
$tCardNo = $tMCDatas[0]['med_c_card_no'];
}else{
$tCardNo = $pCardNo;
}
if(empty($tDatas)) {
$tData = array(
'name' => $pName,
'total_fee' => $pFee/100,
'uid' => $_SESSION['uid'],
'prepay_id' => $pOrder,
'out_trade_no' => $tradeNo,
'created' => $tTime,
'status' => 1,
'patientid' => $pPatientID,
'regid' => $pRegID,
'repeiceno' => $pRepeiceNo,
'cardno' => $tCardNo,
);
$id = $tMO->insert($tData);
if(!$id){
return true;
}
}else{
$id = $tDatas[0]['id'];
}
switch($pBody) {
case 'zyyj': $pBody = '住院押金';break;
case 'mzjf': $pBody = '门诊缴费';break;
}
// var_dump($f);
//②、统一下单
$input = new WxPayUnifiedOrder();
$input->SetBody($pBody);
$input->SetAttach("test");
// $tradeNo = $input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));
$input->SetOut_trade_no($tradeNo);
$input->SetTotal_fee($pFee);
$timestamp = date("YmdHis");
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag("test");
$input->SetNotify_url("http://lyl.medical.91paiyipai.com/wxpay/example/notify.php");
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openId);
$order = WxPayApi::unifiedOrder($input);
// echo '<font color="#f00"><b>统一下单支付单信息</b></font><br/>';
// var_dump($order);exit();
// printf_info($input);
$jsApiParameters = $tools->GetJsApiParameters($order);
//获取共享收货地址js函数参数
$editAddress = $tools->GetEditAddressParameters();
//③、在支持成功回调通知中处理成功之后的事宜,见 notify.php
/**
* 注意:
* 1、当你的回调地址不可访问的时候,回调通知会失败,可以通过查询订单来确认支付是否成功
* 2、jsapi支付时需要填入用户openid,WxPay.JsApiPay.php中有获取openid流程 (文档可以参考微信公众平台“网页授权接口”,
* 参考http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html)
*/
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>确认支付</title>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="./css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="./css/wx.css">
<!-- <link rel="stylesheet" href="../../medical_wx/lib/assets/css/bootstrap.min.css"> -->
<link rel="stylesheet" href="../../medical_wx/lib/assets/css/home_two.css">
<link rel="stylesheet" href="../../medical_wx/lib/assets/css/loaders.css">
</head>
<body class="wxbody">
<div class="col-xs-12 wxcont">
<h5>郴州市中医医院</h5>
<h3><?php echo $pFee/100;?></h3>
<div class="col-xs-12 wxcol12">
<p>收款方<span>郴州市中医医院</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<span><?php echo $pBody;?></span></p>
</div>
<div class="col-xs-12" style="cursor: pointer;" id="wx_btn"><button class="btn" id="btn" type="button" style="height: 50px;">立即支付</button></div>
</div>
<!-- <script src="../../medical_wx/lib/assets/js/jquery.min.js"></script> -->
<script src="./js/jquery.js"></script>
<!-- <script src="../../medical_wx/lib/assets/js/bootstrap.min.js"></script> -->
<div class="tip_mess"></div>
<script src="../../medical_wx/lib/assets/js/home.js"></script>
<script src="../../medical_wx/js/base.js"></script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script src="../../medical_wx/lib/assets/js/home.js"></script>
<script type="text/javascript">
// var t_uid = GetQuery('uid');
var url = location.href.split('#')[0];
var timestamp = '';
var nonceStr = '';
var signature = '';
var uid = localStorage.getItem('uid', uid);
//jssdk初始化配置
(function () {
$.ajax({
type: 'post',
async: true,
url: domain1+'/apiv1_jssdk/',
data:{url:decodeURI(url)},
// beforeSend: function() {
// $.showLoading();
// },
success: function(obj) {
// $.hideLoading();
if(obj.status == 1) {
var data = obj.data;
timestamp = data.timestamp;
nonceStr = data.nonceStr;
signature = data.signature;
wx.config({
beta: true,
debug: false,//调试模式
appId: data.appId,
timestamp: data.timestamp,
nonceStr: data.nonceStr,
signature: data.signature,
jsApiList: [
"selectEnterpriseContact",
"checkJsApi",
"chooseImage",
"previewImage",
"uploadImage",
"downloadImage",
"openEnterpriseChat",
"openLocation",
"getLocation",
"chooseWXPay"
]
})
}else{
$.toptip(obj.msg,'error');return;
}
},
error: function() {
$.hideLoading();
$.toptip('网络繁忙请稍后再试!');return;
}
})
})();
function pay(){
var params = eval('(<?php echo $jsApiParameters;?>)');
wx.chooseWXPay({
nonceStr:params.nonceStr,
package:params.package,
paySign:params.paySign,
signType:params.signType,
timestamp:params.timeStamp+"",
success: function(res) {
// 支付成功后的回调函数
if (res.errMsg == "chooseWXPay:ok") {
// refund("<?php echo $tradeNo;?>", "<?php echo $pFee;?>");
window.location.href='/medical_wx/h5/jfjl.html?title=缴费记录&type=jfjl&uid='+uid;
} else {
alert(res.errMsg);
}
},
cancel: function(res) {
//支付取消
alert('支付取消');
}
});
}
var btn = document.getElementById('btn');
btn.onclick = function(){
// alert('hello world!');
pay();
}
</script>
</body>
</html>