Files
juipnet/Host/Views/Product/rebuy.cshtml

444 lines
19 KiB
Plaintext
Raw Normal View History

2020-10-07 20:25:03 +08:00
@using Hncore.Pass.Vpn.Response.Product
@using Hncore.Infrastructure.Extension
@using Hncore.Pass.BaseInfo.Response
@using Hncore.Infrastructure.Serializer;
@using Hncore.Pass.BaseInfo.Service
@model PackageInfoResponse
@inject UserService m_UserService
@{
ViewData["Title"] = "购买产品";
UserLoginModel user = null;
Hncore.Pass.BaseInfo.Models.User userEntity = new Hncore.Pass.BaseInfo.Models.User();
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
{
user = userCookie.FromJsonTo<UserLoginModel>();
userEntity = await m_UserService.GetById(user.Id);
}
}
2021-05-08 16:44:55 +08:00
<script src="~/js/vue.js"></script>
2020-10-07 20:25:03 +08:00
<script type="text/javascript">
2020-12-13 12:53:37 +08:00
let realverify = {
cookie:document.cookie,
}
$.ajax({
type: 'POST',
async:false,
url: 'http://php-api.juip.com/api/Realname/index',
dataType: "json",
contentType: "application/json",
data: JSON.stringify(realverify),
beforeSend: function(xhr) {
xhr.withCredentials = true;
},
crossDomain: true,
success: function (res) {
if (res.Code == -10000) {
2020-12-27 16:07:29 +08:00
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定进入实名认证。');
2020-12-13 12:53:37 +08:00
window.location.href="/User/Index";
}
}
});
2020-10-07 20:25:03 +08:00
$(function () {
$('.spinner .btn:first-of-type').on('click', function () {
$('.spinner input').val(parseInt($('.spinner input').val(), 10) + 1);
});
$('.spinner .btn:last-of-type').on('click', function () {
$('.spinner input').val(parseInt($('.spinner input').val(), 10) - 1);
});
$(".dan").addClass("cu");
$(".dan").click(function () {
$(this).addClass("cu");
$(".pi").removeClass("cu");
$(".t1").show();
$(".t2").hide();
});
$(".pi").click(function () {
$(this).addClass("cu");
$(".dan").removeClass("cu");
$(".t1").hide();
$(".t2").show();
})
})
</script>
<vc:pay-wait></vc:pay-wait>
<vc:pay-ok></vc:pay-ok>
<div class="container-fluid top">
<div class="container">
<div class="row">
<div class="col-lg-3 text-center">
当前已选产品:
</div>
<div class="col-lg-6">
<div class="selectCard">
<div class="item">
<p style="padding-top: 40px; font-size: 25px; font-weight: bold; color: #ee7a69;">@Model.Product.Name</p>
</div>
<div class="item">
<p class="sname">@Model.Package.Name</p>
<p class="sprice">@(Model.Package.DayPrice)元/天</p>
<p class="stime">@Model.Package.Profile</p>
</div>
<div class="item">
2021-04-13 16:13:46 +08:00
@if(Model.Package.Price < 60 && (Model.Package.Id == 64||Model.Package.Id == 1004)){
<p class="zongjia"><span>60.00</span>元</p>
} else {
<p class="zongjia"><span>@Model.Package.Price</span>元</p>
}
2020-10-07 20:25:03 +08:00
</div>
</div>
<p class="tishi tishika" style="text-align:center">*请务必选好所需商品,换货会产生费用</p>
</div>
<div class="col-lg-3">
<a href="javascript:history.go(-1)">返回重新选择》</a>
</div>
</div>
</div>
</div>
<div id="app">
<!-- con -->
<div class="container zhuce">
<div class="reg_tab">
<div class="item dan active_dan">
续费
</div>
</div>
</div>
<div class="container t1">
<form action="~/product/CreateOrder" method="post" id="accountForm">
<input type="hidden" name="PackageId" value="@Model.Package.Id" />
<input type="hidden" name="OrderType" value="1" />
<div class="row">
<div class="col-lg-4 text-right">
2020-11-30 13:56:19 +08:00
IP产品账号
2020-10-07 20:25:03 +08:00
</div>
<div class="col-lg-4 regDan">
<input type="text" name="Account" value="" v-model="OneBuyModel.Account" disabled />
<p class="jinggao" id="sAccountTip"></p>
</div>
<div class="col-lg-4 text-left warnText">
<sapn class="grayText">支持10位以内字母数字</sapn>
</div>
</div>
@*<div class="row">
<div class="col-lg-4 text-right">
2020-11-30 13:56:19 +08:00
IP产品密码
2020-10-07 20:25:03 +08:00
</div>
<div class="col-lg-4 regDan">
<input type="text" name="Pwd" v-model="OneBuyModel.Pwd" />
</div>
<div class="col-lg-4 text-left">
<span class="grayText">支持6位以内字母数字</span>
</div>
</div>*@
<div class="row">
<div class="col-lg-4 text-right">
连接数:
</div>
<div class="col-lg-4">
<div class="buchang">
<div class="item">
{{OneBuyModel.ConnectCount}}
</div>
</div>
</div>
<div class="col-lg-4 text-left">
<span></span>
</div>
</div>
<div class="row">
<div class="col-lg-4 text-right">
选择优惠券:
</div>
<div class="col-lg-4 regDan">
<div class="dropdown">
<select name="" class="btn btn-default dropdown-toggle" v-model="OneBuyModel.CouponId">
<option value="0">请选择优惠券</option>
<option v-for="item in Coupons" :value="item.Id">{{item.Name}}</option>
</select>
</div>
</div>
<div class="col-lg-4 text-left">
2021-04-13 14:37:10 +08:00
<span class="grayText">淘宝每次下单获得优惠券</span>
2020-10-07 20:25:03 +08:00
</div>
</div>
<div class="row">
<div class="col-lg-4 text-right">
2020-10-10 18:20:40 +08:00
余额:
2020-10-07 20:25:03 +08:00
</div>
<div class="col-lg-4">
2020-10-10 18:20:40 +08:00
当前账户余额<span class="blueText">@(userEntity.RestAmount)</span>元
<a href="/User/Index">前往充值</a>
2020-10-07 20:25:03 +08:00
</div>
2020-10-10 18:20:40 +08:00
<div class="col-lg-4">
2020-10-07 20:25:03 +08:00
</div>
</div>
<div class="row">
<div class="col-lg-4 text-right">
支付方式:
</div>
<div class="col-lg-4 zhifufangshi">
2020-10-10 18:20:40 +08:00
<input id="zhifubaopay_s1" type="radio" name="OPayType" value="100" checked v-model="OneBuyModel.OPayType"> <img src="~/img/zfb.png"><label for="zhifubaopay_s1">支付宝支付</label>
<input id="weixinpay_s1" type="radio" name="OPayType" value="70" v-model="OneBuyModel.OPayType"> <img src="~/img/wx.png"><label for="weixinpay_s1">微信支付</label>
<input id="UseAccountAmount_s1" type="radio" name="OPayType" value="1" v-model="OneBuyModel.UseAccountAmount"> <label for="UseAccountAmount_s1">余额支付</label>
2020-10-07 20:25:03 +08:00
</div>
<div class="col-lg-4 text-left">
<span></span>
</div>
</div>
<div class="row">
<div class="col-lg-4 text-right">
2020-10-12 18:08:24 +08:00
总金额:
2020-10-07 20:25:03 +08:00
</div>
<div class="col-lg-4">
<span class="blueText">{{TotalAmount}}</span>元
</div>
<div class="col-lg-4 text-left">
<span></span>
</div>
</div>
2020-10-12 18:08:24 +08:00
<div class="row">
2020-10-07 20:25:03 +08:00
<div class="col-lg-4 text-right">
应付款:
</div>
<div class="col-lg-4">
<span style="font-size: 30px;font-weight: bold;">{{PayAmount}}</span>元
2021-04-23 17:13:40 +08:00
<span>{{auto_discount_text}}</span>
2020-10-07 20:25:03 +08:00
</div>
<div class="col-lg-4 text-left">
<span></span>
</div>
2020-10-12 18:08:24 +08:00
</div>
2020-10-07 20:25:03 +08:00
<p class="ijiao-tip" style="color:red">{{Tip}}</p>
2020-10-22 09:48:00 +08:00
<p class="tijiao"><button class="btn btn-primary pay-botton" type="button" v-on:click="onePay">确认支付</button></p>
2020-10-07 20:25:03 +08:00
</form>
</div>
<!-- 支付弹窗开始 -->
<div class="payMask">
<div class="payCon">
<img src="~/img/close.png" class="payClose" v-on:click="close">
<p class="payTit"><img src="~/img/wx.png">微信支付 收银台</p>
<div class="row">
<div class="col-lg-6 text-center">
@*<p>订单将在25分钟后关闭请及时付款</p>*@
<p>
@*<img id="wxPayQr" src="img/ewm.png">*@
<div id="qrcode" style="width:200px;height:200px"></div>
</p>
@*<p>二维码已经失效,请刷新后重新扫码支付</p>*@
</div>
<div class="col-lg-6 text-left leftBorder">
<p>新开订单</p>
<p class="payPrice">¥<span>{{OrderInfo.OtherPayAmount}}</span></p>
<p>收款方聚IP</p>
<p>下单时间:<span>{{OrderInfo.CreateTime}}</span></p>
<p>订单号:<span>{{OrderInfo.OrderNo}}</span></p>
</div>
</div>
</div>
</div>
<!-- 支付弹窗结束 -->
<div id="aliPayBox" style="display:none"></div>
</div>
@section Scripts{
<script>
var productId =@(Model.Product.Id);
var app = new Vue({
el: '#app',
data: {
2021-04-23 17:13:40 +08:00
auto_discount_text:'',
2020-10-07 20:25:03 +08:00
payHandler: null,
Tip:'',
RestAmount: @(userEntity.RestAmount),
Coupons: [],
SelectCoupon: {},
OrderInfo: {},
OneBuyModel: {
Price:@(Model.Package.Price),
PackageId:@(Model.Package.Id),
OrderType: @ViewBag.orderType,
Account: '@ViewBag.accounts',
CouponAmount: 0,
Pwd: '',
ConnectCount: @(ViewBag.ConnectCount),
CouponId: 0,
UseAccountAmount: 0,
OPayType: 100,
PayChannel:50,
}
},
computed: {
TotalAmount: function () {
var count = this.OneBuyModel.Account.split(',').length;
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count;
2021-04-13 16:13:46 +08:00
//西瓜极客优惠券
if((@(Model.Package.Id) == 64||@(Model.Package.Id) == 1004) && @(Model.Package.Price)<60){
total = this.OneBuyModel.ConnectCount * 60.00 * count
}
2020-10-07 20:25:03 +08:00
return total.toFixed(2);
},
PayAmount: function () {
var count = this.OneBuyModel.Account.split(',').length;
var restAmout = this.OneBuyModel.UseAccountAmount == 1 ? this.RestAmount : 0;
2020-10-12 21:54:19 +08:00
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount ;
2020-10-07 20:25:03 +08:00
total= total < 0 ? 0 : total;
2021-04-23 18:17:13 +08:00
total = parseFloat(total.toFixed(2));
2021-04-23 17:13:40 +08:00
2021-05-11 14:32:34 +08:00
//最低价
var min_cost = @(Model.Package.MinPrice) * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount;
if(total<min_cost){
total = min_cost;
2021-04-23 17:13:40 +08:00
}
2020-10-07 20:25:03 +08:00
return total.toFixed(2);
}
},
watch: {
'OneBuyModel.CouponId': { //加引号监听对象里的属性
handler: function (newValue, oldValue) {
2021-04-13 14:37:10 +08:00
if( this.OneBuyModel.CouponId == 10000000){
return;
}
2020-10-07 20:25:03 +08:00
var totalAmount = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount;
for (var i = 0; i < this.Coupons.length; i++) {
var item = this.Coupons[i];
if (totalAmount < item.AllowMinAmount) {
continue;
}
if (item.Id == newValue) {
if (item.CouponType == 1) {//满减
this.OneBuyModel.CouponAmount = item.CouponValue;
} else {
//亲 请勿非法操作呦^.^ 请按照正常的流程操作 我们后台是有记录滴
if($(".sname").text() == '天卡'){
this.OneBuyModel.CouponAmount = totalAmount * item.CouponValue * 0.1;
} else {
alert('非天卡无效');
this.OneBuyModel.CouponId = '0';
}
2020-10-07 20:25:03 +08:00
}
return;
2020-10-17 20:13:30 +08:00
}
2020-10-13 10:12:51 +08:00
}
2020-10-07 20:25:03 +08:00
},
immediate: true
},
'OneBuyModel.OPayType': { //加引号监听对象里的属性
handler: function (newValue, oldValue) {
2020-10-10 18:20:40 +08:00
this.OneBuyModel.UseAccountAmount = false;
2020-10-07 20:25:03 +08:00
this.OneBuyModel.PayChannel = newValue == 70 ? 30 : 50;
},
immediate: true
}
},
mounted: function () {
this.getCoupons();
},
2021-04-13 14:37:10 +08:00
created () {
this.OneBuyModel.CouponId = 10000000
},
2020-10-07 20:25:03 +08:00
methods: {
getCoupons: function () {
var that = this;
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
$.ajax({
type: 'GET',
url: url,
success: function (res) {
console.log(res);
2021-04-13 14:37:10 +08:00
if (res.Code == 10000) {
if(@(Model.Package.Id) == 64||@(Model.Package.Id) == 1004){
var coupon_json = {
"Coupon":{
"Id":10000000,
"Name":"极客-西瓜-满减劵",
}
}
res.Data.push(coupon_json);
}
2020-10-07 20:25:03 +08:00
that.Coupons = res.Data.map(m => m.Coupon);
}
}
})
},
onePay: function () {
2020-10-22 09:48:00 +08:00
$(".pay-botton").hide();
2020-10-12 21:54:19 +08:00
if (this.OneBuyModel.UseAccountAmount) {
if (this.RestAmount < this.PayAmount){
2020-10-10 18:20:40 +08:00
alert('余额不足,请充值。您也可以使用微信、支付宝支付。');return;
2020-10-12 21:54:19 +08:00
} else {
this.RestAmount = this.RestAmount - this.PayAmount;
2020-10-10 18:20:40 +08:00
}
2020-10-07 20:25:03 +08:00
}
var that = this;
if (this.OneBuyModel.UseAccountAmount === true) this.OneBuyModel.UseAccountAmount = 1;
if (this.OneBuyModel.UseAccountAmount === false) this.OneBuyModel.UseAccountAmount = 0;
showPayWait();
$.ajax({
type: 'POST',
url: '/product/CreateOrder',
dataType: "json",
contentType: "application/json",
data: JSON.stringify(this.OneBuyModel),
success: function (res) {
console.log(res);
if (res.Code == 10000) {
hidePayWait();
if (res.Data == "00") {
alert("续费成功");
} else {
that.payCallback(res.Data)
that.isPay(res.Data.OrderInfo.OrderNo);
}
} else {
//that.Tip = res.Message;
tipPayWait(res.Message);
}
}
});
},
payCallback: function (data) {
this.OrderInfo = data.OrderInfo;
var payType = this.OrderInfo.PayType;
if (payType == 70) {
$(".payMask").show();
$('#qrcode').qrcode(data.PayData);
} else if (payType == 100) {
$("#aliPayBox").html(data.PayData);
}
},
isPay: function (orderNo) {
var that = this;
this.payHandler = setInterval(function () {
var url = '/product/IsPay?orderNo=' + orderNo;
$.ajax({
type: 'GET',
url: url,
success: function (res) {
if (res.Code == 10000 && res.Data == 1) {
clearInterval(that.payHandler);
$(".payMask").hide();
showPayOk();
//window.location.href = "/user/myaccounts";
}
}
})
}, 3000)
},
close() {
clearInterval(this.payHandler);
$('.payMask').hide();
$('#qrcode').empty();
}
}
})
</script>
}