325 lines
13 KiB
HTML
325 lines
13 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
|
||
<title>加载中...</title>
|
||
<link rel="stylesheet" href="/static/cdn/element-ui/2.15.7/theme-chalk/index.min.css"/>
|
||
<script src="/static/cdn/vue/2.6.11/vue.min.js"></script>
|
||
<script src="/static/cdn/element-ui/2.15.7/index.js"></script>
|
||
<script src="/static/js/jquery.min.js"></script>
|
||
<script src="/static/js/functions.js"></script>
|
||
<link rel="stylesheet" href="/static/css/wechat-group.css?v=asdfgh"/>
|
||
</head>
|
||
<body>
|
||
<div id="app" class="payBox">
|
||
<template>
|
||
|
||
<div class="groupBox" v-show="product_category=='wechat_group'">
|
||
<div class="thumb">
|
||
<img src="/static/images/group_thumb.jpg"/>
|
||
</div>
|
||
<div class="groupName"><{product_name}></div>
|
||
<div class="subName">你和群里其他人都不是朋友关系,请注意隐私安全。</div>
|
||
<ul class="groupDesc">
|
||
<li>该群聊为付费群,请支付金额后加入群聊。</li>
|
||
<li>你需要实名认证后才能加入群聊,可前往「我>服务>钱包>身份信息」进行认证。</li>
|
||
<li>为维护微信平台绿色网络环境,请勿在群内传播违法违规内容。</li>
|
||
</ul>
|
||
<div class="joinBtnBox">
|
||
<div class="joinBtn" @click="createNan66Order()" v-if="payment=='nan66'">支付<{price/100}>元加入群聊</div>
|
||
<div class="joinBtn" @click="redirect()" v-else-if="openId==''">支付<{price/100}>元加入群聊</div>
|
||
<div class="joinBtn" @click="createOrder()" v-else-if="openId!=''">支付<{price/100}>元加入群聊</div>
|
||
<a class="joinBtn" href="javascript:KEFU.showPanel()">咨询在线客服</a>
|
||
<div style="text-align: center;margin-top: 10px;" v-if="nan66qrcode">
|
||
<p>微信扫描或长按识别下面二维码</p>
|
||
<img :src="nan66qrcode" width="90%"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="knowledgeBox" v-show="product_category=='knowledge'">
|
||
<h1 class="mainTitle"><{product_name}></h1>
|
||
<el-form label-width="80px" v-if="openId!=''">
|
||
<el-form-item label="联系邮箱">
|
||
<el-input v-model="email"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="联系手机">
|
||
<el-input v-model="tel"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="联系人">
|
||
<el-input v-model="realname"></el-input>
|
||
</el-form-item>
|
||
</el-form>
|
||
<div style="text-align: center">
|
||
<div class="joinBtn" @click="createNan66Order()" v-if="payment=='nan66'">支付<{price/100}>元获取资源</div>
|
||
<div class="joinBtn" @click="redirect()" v-else-if="openId==''">微信授权</div>
|
||
<div class="joinBtn" @click="createOrder()" v-else-if="openId!=''">支付<{price/100}>元获取资源</div>
|
||
<div class="joinBtn" @click="getProductOrderList(1)" v-if="openId!=''" style="display: none">订单列表</div>
|
||
<a class="joinBtn" href="javascript:KEFU.showPanel()">咨询在线客服</a>
|
||
<div style="text-align: center;margin-top: 10px;" v-if="nan66qrcode">
|
||
<p>请用微信扫描下面付款二维码</p>
|
||
<img :src="nan66qrcode" width="90%"/>
|
||
</div>
|
||
</div>
|
||
|
||
<el-table
|
||
v-if="productOrderList.list.length!=0"
|
||
:data="productOrderList.list"
|
||
border
|
||
style="width: 100%;margin-top: 10px">
|
||
<el-table-column
|
||
prop="order_sn"
|
||
label="订单编号">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="money"
|
||
label="金额">
|
||
<template slot-scope="scope">
|
||
<{scope.row.total_amount/100}>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="order_desc"
|
||
label="描述">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="kefu_name"
|
||
label="商家账号">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="shipping_address"
|
||
label="发货信息">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="type"
|
||
label="支付状态">
|
||
<template slot-scope="scope">
|
||
<el-tag type='info' v-show="scope.row.payment_status=='unpaid'">未支付</el-tag>
|
||
<el-tag type='success' v-show="scope.row.payment_status=='paid'">已支付</el-tag>
|
||
<el-tag type='error' v-show="scope.row.payment_status=='refunded'">已退款</el-tag>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="created_at"
|
||
label="下单时间">
|
||
</el-table-column>
|
||
</el-table>
|
||
<el-pagination
|
||
v-if="productOrderList.list.length!=0"
|
||
background
|
||
@current-change="getProductOrderList"
|
||
:current-page="productOrderList.page"
|
||
layout="prev,pager, next"
|
||
:page-size="productOrderList.pagesize"
|
||
:total="productOrderList.count">
|
||
</el-pagination>
|
||
</div>
|
||
|
||
|
||
</template>
|
||
</div>
|
||
|
||
|
||
<script>
|
||
var KefuName='{{.kefuName}}';
|
||
var EntId='{{.EntId}}';
|
||
var AppId='{{.AppId}}';
|
||
var Host=getBaseUrl();
|
||
var Product='{{.Product}}';
|
||
var OpenID='{{.OpenID}}';
|
||
var NickName='{{.NickName}}';
|
||
var Avatar='{{.Avatar}}';
|
||
var Payment='{{.Payment}}';
|
||
//var OpenID='ox8mo6F3XddfkoJvkykxIp64gg4M';
|
||
|
||
|
||
function onBridgeReady() {
|
||
WeixinJSBridge.call('hideOptionMenu');
|
||
}
|
||
if (typeof WeixinJSBridge == "undefined") {
|
||
if (document.addEventListener) {
|
||
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
|
||
} else if (document.attachEvent) {
|
||
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
|
||
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
|
||
}
|
||
}
|
||
</script>
|
||
<script>
|
||
new Vue({
|
||
el: '#app',
|
||
delimiters:["<{","}>"],
|
||
data: {
|
||
openId:OpenID,
|
||
email:"",
|
||
tel:"",
|
||
realname:"",
|
||
nickname:NickName,
|
||
avatar:Avatar,
|
||
product:Product,
|
||
product_name:"",
|
||
product_category:"",
|
||
price:"",
|
||
resource_link:"",
|
||
payment:Payment,
|
||
productOrderList:{
|
||
page:1,
|
||
count:0,
|
||
pagesize:0,
|
||
list:[],
|
||
},
|
||
nan66qrcode:"",
|
||
orderTimer:null,
|
||
},
|
||
methods: {
|
||
getProduct(){
|
||
let _this=this;
|
||
sendAjax("/2/virtualProduct/"+EntId+"/"+KefuName,"GET",{ent_id:EntId,id:Product},function (res) {
|
||
let info=res.result;
|
||
if(!info){
|
||
alert(res.msg);
|
||
return;
|
||
}
|
||
if(info.id==0){
|
||
alert("商品不存在");
|
||
return;
|
||
}
|
||
_this.product_name=info.product_name;
|
||
_this.price=info.price;
|
||
_this.product_category=info.product_category;
|
||
document.title=_this.product_name;
|
||
});
|
||
},
|
||
createOrder(){
|
||
if(!this.price){
|
||
alert("商品不存在或价格错误");
|
||
return;
|
||
}
|
||
sendAjax("/2/jsApiPay","POST",{
|
||
openId:this.openId,
|
||
amount:this.price,
|
||
email:this.email,
|
||
tel:this.tel,
|
||
contact:this.realname,
|
||
nickname:this.nickname,
|
||
avatar:this.avatar,
|
||
product:this.product,
|
||
entId:EntId,
|
||
kefuName:KefuName,
|
||
},function(resp){
|
||
if(resp.code!=20000){
|
||
alert(resp.msg);
|
||
return;
|
||
}
|
||
let respJson=JSON.parse(resp.result);
|
||
window.WeixinJSBridge.invoke('getBrandWCPayRequest', {
|
||
"appId": respJson.appId, //公众号ID,由商户传入
|
||
"timeStamp": respJson.timeStamp, //时间戳,自1970年以来的秒数
|
||
"nonceStr": respJson.nonceStr, //随机串
|
||
"package": respJson.package,
|
||
"signType": respJson.signType, //微信签名方式:
|
||
"paySign": respJson.paySign //微信签名
|
||
},
|
||
function(res) {
|
||
// alert(JSON.stringify(res));
|
||
if (res.err_msg == "get_brand_wcpay_request:ok") {
|
||
// 使用以上方式判断前端返回,微信团队郑重提示:
|
||
//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
|
||
alert("支付成功!");
|
||
window.location.href=resp.resource_link;
|
||
}
|
||
});
|
||
})
|
||
},
|
||
//南星订单
|
||
createNan66Order() {
|
||
if (!this.price) {
|
||
alert("商品不存在或价格错误");
|
||
return;
|
||
}
|
||
let _this=this;
|
||
sendAjax("/2/yiApiPay", "POST", {
|
||
openId: this.openId,
|
||
amount: this.price,
|
||
email: this.email,
|
||
tel: this.tel,
|
||
contact: this.realname,
|
||
nickname: this.nickname,
|
||
avatar: this.avatar,
|
||
product: this.product,
|
||
entId: EntId,
|
||
kefuName: KefuName,
|
||
}, function (resp) {
|
||
resp=JSON.parse(resp);
|
||
if (resp.msg != "success") {
|
||
alert("支付下单失败!"+resp.msg);
|
||
return;
|
||
}
|
||
_this.nan66qrcode="/api/v2/qrcode?str="+resp.qrcode;
|
||
// if(!isMobile()){
|
||
// _this.nan66qrcode="/api/v2/qrcode?str="+resp.qrcode;
|
||
// }else{
|
||
// window.open(resp.payurl);
|
||
// }
|
||
_this.checkOrderStatus(resp.trade_no);
|
||
});
|
||
},
|
||
redirect(){
|
||
setTimeout(function () {
|
||
var url="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+AppId+"&redirect_uri="+Host+"/pay/"+EntId+"/"+KefuName+"%3Fproduct="+Product+"&response_type=code&scope=snsapi_userinfo#wechat_redirect"
|
||
document.location.href=url;
|
||
},1000);
|
||
},
|
||
//订单列表
|
||
getProductOrderList(page){
|
||
var _this=this;
|
||
var params={pagesize:20,page:page,user_id:OpenID,ent_id:EntId};
|
||
sendAjax("/2/productOrders","GET",params,function(result){
|
||
_this.productOrderList=result.result;
|
||
});
|
||
},
|
||
//定时查询扫码状态
|
||
checkOrderStatus(orderId) {
|
||
let _this=this;
|
||
this.stopOrderStatus();
|
||
this.orderTimer = setInterval(function() {
|
||
sendAjax("/2/orderStatus","POST", {order_id:orderId}, function (data) {
|
||
if(data.result){
|
||
window.location.href=data.result;
|
||
}
|
||
});
|
||
}, 3000);
|
||
},
|
||
//停止查询扫码状态
|
||
stopOrderStatus(){
|
||
clearInterval(this.orderTimer); // 停止定时器
|
||
},
|
||
},
|
||
mounted:function(){
|
||
//判断支付
|
||
if(Payment=="nan66"){
|
||
|
||
}else{
|
||
if(!this.openId){
|
||
this.redirect();
|
||
}
|
||
}
|
||
this.getProduct();
|
||
},
|
||
created: function () {
|
||
}
|
||
})
|
||
</script>
|
||
<script type='text/javascript' src="/static/js/kefu-front.js"></script>
|
||
<script>
|
||
KEFU.init({
|
||
KEFU_URL:getBaseUrl(),
|
||
KEFU_KEFU_ID: KefuName,
|
||
KEFU_ENT: EntId,
|
||
KEFU_SHOW_TYPES:0,
|
||
KEFU_AUTO_OPEN:false,
|
||
});
|
||
</script>
|
||
</body>
|
||
</html> |