apicloud含有微信支付。支付宝支付和苹果内购的代码
apicloud含有微信支付。支付宝支付和苹果内购的代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport"
content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
<title>我的余额</title>
<link rel="stylesheet" type="text/css" href="../css/api.css"/>
<link rel="stylesheet" type="text/css" href="../css/mui.min.css"/>
<link rel="stylesheet" href="../css/aui.css"/>
<link rel="stylesheet" type="text/css" href="../css/app.css"/>
<link href="../css/style.css" rel="stylesheet"/>
<link rel="stylesheet" href="../css/user_balance.css"/>
</head>
<body>
<header class="mui-bar mui-bar-nav">
<a class="mui-icon mui-icon-left-nav mui-pull-left" onclick="api.closeWin()"></a>
<h1 class="mui-title">我的余额</h1>
<a class="mui-pull-right detail" onclick="goPage('balance_detail')">明细</a>
</header>
<div class="aui-content">
<div class="top">
<p class="my-num">
{{myBalance}}
</p>
<p class="num-text">
学习币
</p>
</div>
<div class="con aui-margin-t-10 aui-padded-15">
<div class="con-tit aui-margin-b-10">
充值
</div>
<ul class="recharge-list flex">
<li :recharge-num="item.Price" :recharge-id="item.IapProductId" v-for="item in mealCoin">
<p class="list-name">
{{item.PriceInt}}学习币
</p>
<p class="money">
¥{{item.Price}}
</p>
</li>
<!--<li>-->
<!--<p class="list-name">手动输入</p>-->
<!--<p class="money" v-if="custom">¥{{rechargeNum}}</p>-->
<!--<p class="money" v-else="custom"> </p>-->
<!--</li>-->
</ul>
</div>
<div class="bot aui-padded-t-10 aui-padded-l-15 aui-padded-r-15 aui-padded-b-5">
<div class="bot-tit aui-margin-b-10">
充值说明
</div>
<p>
1、充值后可用于直接购买App内虚拟内容,比如课程、电子书。
</p>
<p>
2、充值后不能在非ios设备使用,充值请参考 <a href="#">充值流程说明</a>。
</p>
<p>
3、充值后没有使用期限,无法提现退款或转赠他人。
</p>
<p>
4、如遇无法充值、充值失败问题,可关注“8分钟创伤服务号”联系我们。
</p>
</div>
<div class="operation">
<!--<div id="exchange-btn" class="aui-btn aui-btn-warning aui-margin-l-10">兑换码</div>-->
<div id="invoice-switch" class="aui-padded-l-15 aui-padded-r-15 flex">
<p class="switch-text">
索要发票
</p>
<p>
<input id="invoice" type="checkbox" class="aui-switch">
</p>
</div>
</div>
<div id="recharge" class="aui-btn aui-btn-block aui-btn-warning aui-margin-15">
立即充值
</div>
<div class="aui-mask aui-mask-in"></div>
<div id="pay-box">
<p class="pay-tit">
选择支付
</p>
<p class="money">
¥{{rechargeNum}}
</p>
<ul>
<li class="pay-item flex" v-if="wxpay==true">
<div class="pay-l flex aui-margin-l-15">
<div class="pay-icon"><img src="../image/share/wx-pay.png" alt="">
</div>
<p class="pay-text">
微信
</p>
</div>
<div class="pay-r aui-margin-r-15">
<input class="aui-radio" type="radio" value="wxpay" name="payType" checked>
</div>
</li>
<li class="pay-item flex" v-if="alipay==true">
<div class="pay-l flex aui-margin-l-15">
<div class="pay-icon"><img src="../image/share/zfb-pay.png" alt="">
</div>
<p class="pay-text">
支付宝
</p>
</div>
<div class="pay-r aui-margin-r-15">
<input class="aui-radio" type="radio" value="alipay" name="payType">
</div>
</li>
<li class="pay-item flex" v-if="iap==true">
<div class="pay-l flex aui-margin-l-15">
<div class="pay-icon"><img src="../image/share/ios.jpg" alt="">
</div>
<p class="pay-text">
苹果内购
</p>
</div>
<div class="pay-r aui-margin-r-15">
<input class="aui-radio" type="radio" value="iap" name="payType">
</div>
</li>
<li class="pay-item flex" v-if="exchange==true">
<div class="pay-l flex aui-margin-l-15">
<div class="pay-icon"><img src="../image/share/exchange.png" alt="">
</div>
<p class="pay-text">
兑换码
</p>
</div>
<div class="pay-r aui-margin-r-15">
<input class="aui-radio" type="radio" value="exchange" name="payType">
</div>
</li>
</ul>
<div id="pay" class="aui-btn aui-padded-t-5 aui-padded-b-5 aui-margin-b-10 aui-btn-warning" onclick="subOrder(this)">
立即支付
</div>
</div>
<!--填写发票信息-->
<div id="invoice-box">
<div class="invoice-list flex">
<div class="list-label">
发票类型
</div>
<div class="list-input">
<select id="invoiceType">
<option value="咨询费">咨询费</option>
<option value="会务费">会务费</option>
<option value="信息服务费">信息服务费</option>
</select>
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
发票抬头
</div>
<div class="list-input">
<input type="text" id="invoiceHead" placeholder="请输入发票抬头">
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
发票内容
</div>
<div class="list-input">
<input type="text" id="invoiceCon" placeholder="请输入发票内容">
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
收件人姓名
</div>
<div class="list-input">
<input type="text" id="addressee" placeholder="请输入收件人姓名">
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
收件人电话
</div>
<div class="list-input">
<input type="text" id="AddresseePhone" placeholder="请输入收件人电话">
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
发票邮寄地址
</div>
<div class="list-input">
<input type="text" id="invoiceAddress" placeholder="请输入邮寄地址">
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
纳税人识别号
</div>
<div class="list-input">
<input type="text" id="taxpayerNum" placeholder="请输入纳税人识别号">
</div>
</div>
<div class="invoice-btns aui-padded-b-15 flex">
<div class="aui-btn cannel">
取消
</div>
<div class="aui-btn ok">
确定
</div>
</div>
</div>
</div>
</body>
<script src="../script/api.js" type="text/javascript"></script>
<script src="../script/mui.min.js" type="text/javascript"></script>
<script src="../script/common.js" type="text/javascript"></script>
<script src="../script/vue.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../script/jquery-1.11.2.min.js" type="text/javascript"></script>
<script>
var vm = new Vue({
el : ".aui-content",
data : {
myBalance : '',
mealCoin : [],
rechargeNum : 0,
rechargeId : '',
custom : false,
systemType : '',
iap : false, //苹果内购
wxpay : true, //微信支付
alipay : true, //支付宝支付
exchange : true,//兑换码兑换
}
});
apiready = function() {
api.ajax({
url : host + "/api/Coin/MyCoinValue",
method : "get",
headers : {
"Authorization" : "Bearer " + token
}
}, function(ret, err) {
if (ret) {
if (ret.code == 200) {
vm.myBalance = ret.res.data.myCoinValue.toFixed(2);
} else {
api.alert({
msg : JSON.stringify(ret.res.msg)
});
}
} else {
if (err.body.code == "403") {
api.openWin({
url : "user_login_win.html",
name : "user_login_win",
})
} else {
api.alert({
//msg : JSON.stringify(err)
msg : JSON.stringify("网络已断开")
});
}
}
});
iosPay();
mealCoin();
};
$(".recharge-list").on("click", "li", function() {
var i = $(this).index();
$(".recharge-list li").removeClass("li-active");
$(".recharge-list li").eq(i).addClass("li-active");
var num = $(this).attr('recharge-num');
var id = $(this).attr('recharge-id');
if (num) {
vm.custom = false;
vm.rechargeNum = num;
vm.rechargeId = id;
} else {
api.prompt({
title : '自定义充值',
msg : '请输入想要充值的金额',
text : '',
type : 'number',
buttons : ['取消', '确定'],
}, function(ret, err) {
var index = ret.buttonIndex;
var text = ret.text;
if (text) {
vm.rechargeNum = text;
vm.custom = true;
}
})
}
});
$("#recharge").on("click", function() {
vm.systemType = api.systemType;
$(".aui-mask").show();
$("#pay-box").show();
});
$("#invoice").on("change", function(e) {
if ($(this).is(':checked')) {
$(".aui-mask").show();
$("#invoice-box").show()
}
});
$(".cannel").on("click", function() {
$(".aui-mask").hide();
$("#invoice-box").hide();
$("#invoice").prop("checked", false);
});
$(".ok").on("click", function() {
if (!$("#invoiceHead").val()) {
api.toast({
msg : '发票抬头不能为空'
})
return;
}
if (!$("#invoiceCon").val()) {
api.toast({
msg : '发票内容不能为空'
})
return;
}
if (!$("#addressee").val()) {
api.toast({
msg : '收件人姓名不能为空'
})
return;
}
if (!$("#AddresseePhone").val()) {
api.toast({
msg : '收件人电话不能为空'
})
return;
}
if (!$("#invoiceAddress").val()) {
api.toast({
msg : '邮寄地址不能为空'
})
return;
}
if (!$("#taxpayerNum").val()) {
api.toast({
msg : '纳税人识别号不能为空'
})
return;
}
$(".aui-mask").hide();
$("#invoice-box").hide();
});
$(".aui-mask").on("click", function() {
$(".aui-mask").hide();
$("#pay-box").hide();
$("#invoice-box").hide();
$("#invoice").prop("checked", false);
});
function goPage(page) {
api.openWin({
url : page + ".html",
name : page
})
} function fillShow() {
$("#invoice-con").show();
$("#invoice-con").animate({
top : "0",
bottom : "0"
});
} function fillHide() {
$("#invoice-con").animate({
top : screenHeight,
bottom : -screenHeight
}, function() {
$("#invoice").prop("checked", false);
$("#invoice-con").hide();
});
} function subOrder(obj) {
obj.disabled = true;
var systemType = api.systemType;
var payType = $("input[name='payType']:checked").val();
if (payType == 'exchange') {
api.prompt({
msg : '请输入兑换码',
buttons : ['取消', '确定']
}, function(ret, err) {
var index = ret.buttonIndex;
var text = ret.text;
if (index == 2) {
api.ajax({
url : host + "/api/ExchangeCode/Exchange?code=" + text,
method : "post",
headers : {
"Authorization" : "Bearer " + token
}
}, function(ret, err) {
if (ret) {
if (ret.code == 200) {
api.toast({
msg : ret.res.msg
});
location.reload();
} else {
api.toast({
msg : ret.res.msg
})
}
} else {
if (err.body.code = "403") {
api.openWin({
url : "user_login_win.html",
name : "user_login_win",
})
} else {
api.alert({
//msg : JSON.stringify(err)
msg : JSON.stringify("网络已断开")
});
}
}
// alert(JSON.stringify(ret));
})
}
})
} else {
if (!vm.rechargeNum) {
api.toast({
msg : '请选择充值套餐'
})
return;
}
var payData = {
body : {}
};
payData.body.SystemType = systemType;
payData.body.CoinValue = vm.rechargeNum;
if ($("#invoice").is(":checked")) {
payData.body.InvoiceType = $("#invoiceType").val();
payData.body.InvoiceTitle = $("#invoiceHead").val();
payData.body.InvoiceContent = $("#invoiceCon").val();
payData.body.UserName = $("#addressee").val();
payData.body.UserMobile = $("#AddresseePhone").val();
payData.body.UserAddress = $("#invoiceAddress").val();
payData.body.TaxpayerCode = $("#taxpayerNum").val();
}
if (payType == 'wxpay') {
// 获取配置
api.ajax({
url : host + '/api/Orders/WxPayUnifiedOrder',
method : 'post',
headers : {
'Content-Type' : 'application/json;charset=utf-8',
'Authorization' : 'Bearer ' + token
},
data : payData
}, function(ret, err) {
if (ret) {
if (ret.Status == 'success') {
var wxPay = api.require('wxPay');
var data = JSON.parse(ret.PayData);
wxPay.payOrder({
apiKey : data.appId,
orderId : data.prepayId,
mchId : data.partnerId,
nonceStr : data.nonceStr,
timeStamp : data.timeStamp,
package : 'Sign=WXPay',
sign : data.sign
}, function(ret, err) {
if (ret.status) {
alert("支付成功!");
} else {
alert("订单支付失败");
}
api.closeToWin({
name : 'root'
});
obj.disabled = false;
});
}
} else {
api.alert({
msg : JSON.stringify("发起支付失败")
});
obj.disabled = false;
}
});
} else if (payType == 'alipay') {
api.ajax({
url : host + '/api/Orders/AliPayUnifiedOrder',
method : 'post',
headers : {
'Content-Type' : 'application/json;charset=utf-8',
'Authorization' : 'Bearer ' + token
},
data : payData
}, function(ret, err) {
if (ret) {
if (ret.Status == 'success') {
var aliPayPlus = api.require('aliPayPlus');
var data = ret.PayData
aliPayPlus.payOrder({
orderInfo : data.replace(/\"/g, "\'")
}, function(ret, err) {
if (ret.code == "9000") {
alert('支付成功');
} else if (ret.code == "8000") {
alert('正在处理中...');
} else if (ret.code == "4000") {
alert('支付失败');
} else if (ret.code == "5000") {
alert('重复请求');
} else if (ret.code == "6001") {
alert('取消支付');
} else if (ret.code == "6002") {
alert('网络连接出错');
} else if (ret.code == "6004") {
alert('支付结果未知(有可能已经支付成功),请查询商户订单列表中订单的支付状态');
}
api.closeToWin({
name : 'root'
});
})
}
} else {
api.alert({
msg : JSON.stringify("发起支付失败")
});
api.closeToWin({
name : 'root'
});
obj.disabled = false;
}
})
} else if (payType == 'iap') {
var iap = api.require('iap');
//alert(vm.rechargeId)
iap.purchase({
productId : vm.rechargeId
}, function(ret, err) {
if (ret) {
//alert(JSON.stringify(ret));
if (ret.state == 1) {
api.ajax({
url : host + '/api/Orders/IapNotify',
method : 'post',
headers : {
'Content-Type' : 'application/json;charset=utf-8',
'Authorization' : 'Bearer ' + token
},
data : {
body : {
IapProductId : ret.productId,
TransactionId : ret.transactionId,
Receipt : ret.receipt,
}
}
}, function(ret, err) {
if (ret) {
if (ret.code == 200) {
api.alert({
msg : JSON.stringify(ret.res.msg)
});
api.closeToWin({
name : 'root'
});
} else {
api.alert({
msg : JSON.stringify(ret.res.msg)
});
}
api.closeToWin({
name : 'root'
});
} else {
if (err.body.code = "403") {
api.openWin({
url : "user_login_win.html",
name : "user_login_win",
})
} else {
api.alert({
//msg : JSON.stringify(err)
msg : JSON.stringify("网络已断开")
});
}
}
})
}
} else {
alert("苹果内购发起失败");
//alert(JSON.stringify(err));
}
});
} else {
alert("请选择支付方式");
}
}
} function iosPay() {
api.ajax({
url : host + '/api/AppConfig/AppConfig',
method : 'get',
headers : {
'Content-Type' : 'application/json;charset=utf-8',
'Authorization' : 'Bearer ' + token
}
}, function(ret, err) {
if (ret) {
if (ret.code == 200) {
if (ret.res.data.model.IsAppleAudit && api.systemType == "ios") {
vm.iap = true;
vm.wxpay = false;
vm.alipay = false;
vm.exchange = false;
}
}
} else {
api.alert({
msg : JSON.stringify("发起支付失败")
});
obj.disabled = false;
}
})
} function mealCoin() {
api.ajax({
url : host + '/api/Coin/MyCoinValue',
method : 'get',
headers : {
'Content-Type' : 'application/json;charset=utf-8',
'Authorization' : 'Bearer ' + token
}
}, function(ret, err) {
if (ret) {
if (ret.code == 200) {
vm.mealCoin = ret.res.data.iapProductList;
} else {
api.alert({
msg : JSON.stringify(ret.res.msg)
});
}
} else {
if (err.body.code = "403") {
api.openWin({
url : "user_login_win.html",
name : "user_login_win",
})
} else {
api.alert({
//msg : JSON.stringify(err)
msg : JSON.stringify("网络已断开")
});
}
}
})
}
</script>
</html>
仅有苹果内购(ios上架)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport"
content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
<title>我的余额</title>
<link rel="stylesheet" type="text/css" href="../css/api.css"/>
<link rel="stylesheet" type="text/css" href="../css/mui.min.css"/>
<link rel="stylesheet" href="../css/aui.css"/>
<link rel="stylesheet" type="text/css" href="../css/app.css"/>
<link href="../css/style.css" rel="stylesheet"/>
<link rel="stylesheet" href="../css/user_balance.css"/>
</head>
<body>
<header class="mui-bar mui-bar-nav">
<a class="mui-icon mui-icon-left-nav mui-pull-left" onclick="api.closeWin()"></a>
<h1 class="mui-title">我的余额</h1>
<a class="mui-pull-right detail" onclick="goPage('balance_detail')">明细</a>
</header>
<div class="aui-content">
<div class="top">
<p class="my-num">
{{myBalance}}
</p>
<p class="num-text">
学习币
</p>
</div>
<div class="con aui-margin-t-10 aui-padded-15">
<div class="con-tit aui-margin-b-10">
充值
</div>
<ul class="recharge-list flex">
<li :recharge-num="item.Price" :recharge-id="item.IapProductId" v-for="item in mealCoin">
<p class="list-name">
{{item.PriceInt}}学习币
</p>
<p class="money">
¥{{item.Price}}
</p>
</li>
<!--<li>-->
<!--<p class="list-name">手动输入</p>-->
<!--<p class="money" v-if="custom">¥{{rechargeNum}}</p>-->
<!--<p class="money" v-else="custom"> </p>-->
<!--</li>-->
</ul>
</div>
<div class="bot aui-padded-t-10 aui-padded-l-15 aui-padded-r-15 aui-padded-b-5">
<div class="bot-tit aui-margin-b-10">
充值说明
</div>
<p>
1、充值后可用于直接购买App内虚拟内容,比如课程、电子书。
</p>
<p>
<!--2、充值后不能在非ios设备使用,充值请参考 <a href="#">充值流程说明</a>。-->
2、充值后可以享受会员的尊贵服务。
</p>
<p>
3、充值后没有使用期限,无法提现退款或转赠他人。
</p>
<p>
4、如遇无法充值、充值失败问题,可关注“8分钟创伤服务号”联系我们。
</p>
</div>
<div class="operation">
<!--<div id="exchange-btn" class="aui-btn aui-btn-warning aui-margin-l-10">兑换码</div>-->
<div id="invoice-switch" class="aui-padded-l-15 aui-padded-r-15 flex">
<p class="switch-text">
索要发票
</p>
<p>
<input id="invoice" type="checkbox" class="aui-switch">
</p>
</div>
</div>
<div id="recharge" class="aui-btn aui-btn-block aui-btn-warning aui-margin-15">
立即充值
</div>
<div class="aui-mask aui-mask-in"></div>
<div id="pay-box">
<p class="pay-tit">
选择支付
</p>
<p class="money">
¥{{rechargeNum}}
</p>
<ul>
<li class="pay-item flex" v-if="iap==true">
<div class="pay-l flex aui-margin-l-15">
<div class="pay-icon"><img src="../image/share/ios.jpg" alt="">
</div>
<p class="pay-text">
苹果内购
</p>
</div>
<div class="pay-r aui-margin-r-15">
<input class="aui-radio" type="radio" value="iap" name="payType">
</div>
</li>
<li class="pay-item flex" v-if="exchange==true">
<div class="pay-l flex aui-margin-l-15">
<div class="pay-icon"><img src="../image/share/exchange.png" alt="">
</div>
<p class="pay-text">
兑换码
</p>
</div>
<div class="pay-r aui-margin-r-15">
<input class="aui-radio" type="radio" value="exchange" name="payType">
</div>
</li>
</ul>
<div id="pay" class="aui-btn aui-padded-t-5 aui-padded-b-5 aui-margin-b-10 aui-btn-warning" onclick="subOrder(this)">
立即支付
</div>
</div>
<!--填写发票信息-->
<div id="invoice-box">
<div class="invoice-list flex">
<div class="list-label">
发票类型
</div>
<div class="list-input">
<select id="invoiceType">
<option value="咨询费">咨询费</option>
<option value="会务费">会务费</option>
<option value="信息服务费">信息服务费</option>
</select>
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
发票抬头
</div>
<div class="list-input">
<input type="text" id="invoiceHead" placeholder="请输入发票抬头">
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
发票内容
</div>
<div class="list-input">
<input type="text" id="invoiceCon" placeholder="请输入发票内容">
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
收件人姓名
</div>
<div class="list-input">
<input type="text" id="addressee" placeholder="请输入收件人姓名">
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
收件人电话
</div>
<div class="list-input">
<input type="text" id="AddresseePhone" placeholder="请输入收件人电话">
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
发票邮寄地址
</div>
<div class="list-input">
<input type="text" id="invoiceAddress" placeholder="请输入邮寄地址">
</div>
</div>
<div class="invoice-list flex">
<div class="list-label">
纳税人识别号
</div>
<div class="list-input">
<input type="text" id="taxpayerNum" placeholder="请输入纳税人识别号">
</div>
</div>
<div class="invoice-btns aui-padded-b-15 flex">
<div class="aui-btn cannel">
取消
</div>
<div class="aui-btn ok">
确定
</div>
</div>
</div>
</div>
</body>
<script src="../script/api.js" type="text/javascript"></script>
<script src="../script/mui.min.js" type="text/javascript"></script>
<script src="../script/common.js" type="text/javascript"></script>
<script src="../script/vue.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../script/jquery-1.11.2.min.js" type="text/javascript"></script>
<script>
var vm = new Vue({
el : ".aui-content",
data : {
myBalance : '',
mealCoin : [],
rechargeNum : 0,
rechargeId : '',
custom : false,
systemType : '',
iap : true, //苹果内购
exchange : true,//兑换码兑换
}
});
apiready = function() {
api.ajax({
url : host + "/api/Coin/MyCoinValue",
method : "get",
headers : {
"Authorization" : "Bearer " + token
}
}, function(ret, err) {
if (ret) {
if (ret.code == 200) {
vm.myBalance = ret.res.data.myCoinValue.toFixed(2);
} else {
api.alert({
msg : JSON.stringify(ret.res.msg)
});
}
} else {
if (err.body.code == "403") {
api.openWin({
url : "user_login_win.html",
name : "user_login_win",
})
} else {
api.alert({
//msg : JSON.stringify(err)
msg : JSON.stringify("网络已断开")
});
}
}
});
iosPay();
mealCoin();
};
$(".recharge-list").on("click", "li", function() {
var i = $(this).index();
$(".recharge-list li").removeClass("li-active");
$(".recharge-list li").eq(i).addClass("li-active");
var num = $(this).attr('recharge-num');
var id = $(this).attr('recharge-id');
if (num) {
vm.custom = false;
vm.rechargeNum = num;
vm.rechargeId = id;
} else {
api.prompt({
title : '自定义充值',
msg : '请输入想要充值的金额',
text : '',
type : 'number',
buttons : ['取消', '确定'],
}, function(ret, err) {
var index = ret.buttonIndex;
var text = ret.text;
if (text) {
vm.rechargeNum = text;
vm.custom = true;
}
})
}
});
$("#recharge").on("click", function() {
vm.systemType = api.systemType;
$(".aui-mask").show();
$("#pay-box").show();
});
$("#invoice").on("change", function(e) {
if ($(this).is(':checked')) {
$(".aui-mask").show();
$("#invoice-box").show()
}
});
$(".cannel").on("click", function() {
$(".aui-mask").hide();
$("#invoice-box").hide();
$("#invoice").prop("checked", false);
});
$(".ok").on("click", function() {
if (!$("#invoiceHead").val()) {
api.toast({
msg : '发票抬头不能为空'
})
return;
}
if (!$("#invoiceCon").val()) {
api.toast({
msg : '发票内容不能为空'
})
return;
}
if (!$("#addressee").val()) {
api.toast({
msg : '收件人姓名不能为空'
})
return;
}
if (!$("#AddresseePhone").val()) {
api.toast({
msg : '收件人电话不能为空'
})
return;
}
if (!$("#invoiceAddress").val()) {
api.toast({
msg : '邮寄地址不能为空'
})
return;
}
if (!$("#taxpayerNum").val()) {
api.toast({
msg : '纳税人识别号不能为空'
})
return;
}
$(".aui-mask").hide();
$("#invoice-box").hide();
});
$(".aui-mask").on("click", function() {
$(".aui-mask").hide();
$("#pay-box").hide();
$("#invoice-box").hide();
$("#invoice").prop("checked", false);
});
function goPage(page) {
api.openWin({
url : page + ".html",
name : page
})
} function fillShow() {
$("#invoice-con").show();
$("#invoice-con").animate({
top : "0",
bottom : "0"
});
} function fillHide() {
$("#invoice-con").animate({
top : screenHeight,
bottom : -screenHeight
}, function() {
$("#invoice").prop("checked", false);
$("#invoice-con").hide();
});
} function subOrder(obj) {
obj.disabled = true;
var systemType = api.systemType;
var payType = $("input[name='payType']:checked").val();
if (payType == 'exchange') {
api.prompt({
msg : '请输入兑换码',
buttons : ['取消', '确定']
}, function(ret, err) {
var index = ret.buttonIndex;
var text = ret.text;
if (index == 2) {
api.ajax({
url : host + "/api/ExchangeCode/Exchange?code=" + text,
method : "post",
headers : {
"Authorization" : "Bearer " + token
}
}, function(ret, err) {
if (ret) {
if (ret.code == 200) {
api.toast({
msg : ret.res.msg
});
location.reload();
} else {
api.toast({
msg : ret.res.msg
})
}
} else {
if (err.body.code = "403") {
api.openWin({
url : "user_login_win.html",
name : "user_login_win",
})
} else {
api.alert({
//msg : JSON.stringify(err)
msg : JSON.stringify("网络已断开")
});
}
}
// alert(JSON.stringify(ret));
})
}
})
} else {
if (!vm.rechargeNum) {
api.toast({
msg : '请选择充值套餐'
})
return;
}
var payData = {
body : {}
};
payData.body.SystemType = systemType;
payData.body.CoinValue = vm.rechargeNum;
if ($("#invoice").is(":checked")) {
payData.body.InvoiceType = $("#invoiceType").val();
payData.body.InvoiceTitle = $("#invoiceHead").val();
payData.body.InvoiceContent = $("#invoiceCon").val();
payData.body.UserName = $("#addressee").val();
payData.body.UserMobile = $("#AddresseePhone").val();
payData.body.UserAddress = $("#invoiceAddress").val();
payData.body.TaxpayerCode = $("#taxpayerNum").val();
}
if (payType == 'iap') {
var iap = api.require('iap');
//alert(vm.rechargeId)
iap.purchase({
productId : vm.rechargeId
}, function(ret, err) {
if (ret) {
//alert(JSON.stringify(ret));
if (ret.state == 1) {
api.ajax({
url : host + '/api/Orders/IapNotify',
method : 'post',
headers : {
'Content-Type' : 'application/json;charset=utf-8',
'Authorization' : 'Bearer ' + token
},
data : {
body : {
IapProductId : ret.productId,
TransactionId : ret.transactionId,
Receipt : ret.receipt,
}
}
}, function(ret, err) {
if (ret) {
if (ret.code == 200) {
api.alert({
msg : JSON.stringify(ret.res.msg)
});
api.closeToWin({
name : 'root'
});
} else {
api.alert({
msg : JSON.stringify(ret.res.msg)
});
}
api.closeToWin({
name : 'root'
});
} else {
if (err.body.code = "403") {
api.openWin({
url : "user_login_win.html",
name : "user_login_win",
})
} else {
api.alert({
//msg : JSON.stringify(err)
msg : JSON.stringify("网络已断开")
});
}
}
})
}
} else {
alert("苹果内购发起失败");
//alert(JSON.stringify(err));
}
});
} else {
alert("请选择支付方式");
}
}
} function iosPay() {
api.ajax({
url : host + '/api/AppConfig/AppConfig',
method : 'get',
headers : {
'Content-Type' : 'application/json;charset=utf-8',
'Authorization' : 'Bearer ' + token
}
}, function(ret, err) {
if (ret) {
if (ret.code == 200) {
if (ret.res.data.model.IsAppleAudit && api.systemType == "ios") {
vm.iap = true;
vm.exchange = false;
}
}
} else {
api.alert({
msg : JSON.stringify("发起支付失败")
});
obj.disabled = false;
}
})
} function mealCoin() {
api.ajax({
url : host + '/api/Coin/MyCoinValue',
method : 'get',
headers : {
'Content-Type' : 'application/json;charset=utf-8',
'Authorization' : 'Bearer ' + token
}
}, function(ret, err) {
if (ret) {
if (ret.code == 200) {
vm.mealCoin = ret.res.data.iapProductList;
} else {
api.alert({
msg : JSON.stringify(ret.res.msg)
});
}
} else {
if (err.body.code = "403") {
api.openWin({
url : "user_login_win.html",
name : "user_login_win",
})
} else {
api.alert({
//msg : JSON.stringify(err)
msg : JSON.stringify("网络已断开")
});
}
}
})
}
</script>
</html>
apicloud含有微信支付。支付宝支付和苹果内购的代码的更多相关文章
- 微信和支付宝支付模式详解及实现(.Net标准库)- OSS开源系列
支付基本上是很多产品都必须的一个模块,大家最熟悉的应该就是微信和支付宝支付了,不过更多的可能还是停留在直接sdk的调用上,甚至和业务系统高度耦合,网上也存在各种解决方案,但大多形式各异,东拼西凑而成. ...
- 微信和支付宝支付模式详解及实现(.Net标准库)
支付基本上是很多产品都必须的一个模块,大家最熟悉的应该就是微信和支付宝支付了,不过更多的可能还是停留在直接sdk的调用上,甚至和业务系统高度耦合,网上也存在各种解决方案,但大多形式各异,东拼西凑而成. ...
- Android H5调起原生微信或支付宝支付
Android H5调起原生微信或支付宝支付 WebView调用原生微信或支付宝回调:其原理就是在shouldOverrideUrlLoading(final WebView view, String ...
- iOS不用官方SDK实现微信和支付宝支付XHPayKit
作者:朱晓辉Allen 链接:https://juejin.im/post/5a90dd3a6fb9a0634912b755 前言 前段时间由于项目需求,移除了项目中的微信支付SDK和支付宝支付SDK ...
- Android 微信支付&支付宝支付
由于项目需求,加入这2个功能记录一些需要注意的地方 一.微信支付 微信支付在2016年4月份左右稍微调整了一下支付过程,但是文档却没怎么更新,这也是百度上为什么那么多开发者都说微信是个大坑. 身为一个 ...
- Android支付——支付宝支付总结
摘要:分享牛系列.分享牛转载.第三方支付,java第三方支付.android第三方支付. 原文地址:http://blog.csdn.net/zwl5670/article/details/51219 ...
- Cocos 2d-X Lua 游戏添加苹果内购(二) OC和Lua交互代码详解
这是第二篇 Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程 这是前面的第一篇,详细的说明了怎样添加内购项目以及填写银行信息提交以及沙盒测试员的添加使用以及需要我们注意的东西,结 ...
- iOS:苹果内购实践
iOS 苹果的内购 一.介绍 苹果规定,凡是虚拟的物品(例如:QQ音乐的乐币)进行交易时,都必须走苹果的内购通道,苹果要收取大约30%的抽成,所以不允许接入第三方的支付方式(微信.支付宝等),当然开发 ...
- iOS开发苹果内购的介绍与实现
1.iOS开发苹果内购的介绍 1.1 介绍 苹果规定,凡是虚拟的物品(例如:QQ音乐的乐币)进行交易时,都必须走苹果的内购通道,苹果要收取大约30%的抽成,所以不允许接入第三方的支付方式(微信.支付宝 ...
随机推荐
- Spring Boot 2 发布与调用REST服务
开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2.1.8 一.发布REST服务 1.IDEA新建一个名称为rest-server的Spring Boot项目 2.新 ...
- 中缀表达式转换为后缀表达式(python实现)
中缀表示式转换为后缀表达式 需要一个存放操作符的栈op_stack,输出结果的列表output 步骤: 从左到右遍历表达式: 1. 若是数字,直接加入到output 2. 若是操作符,比较该操作符和o ...
- python创建文件夹
import os filePath = 'D:\12345' # 判断文件夹是否存在,不存在则创建文件夹if not os.path.exists(filePath): os.makedirs(fi ...
- python3字符串常用方法
整型和布尔值的转换: bin -- 十进制转二进制 int("1101",2) -- 二进制转十进制 十进制转二进制的算法 除2 取余,获取的所有余数从下往上进行计算 二进制转十进 ...
- CheckBoxList选中某项,获取其它项是否是选中
<div class="formControls col-xs-8 col-sm-9" style="margin-top:-15px;" id=&quo ...
- GO 使用 动态链接库(共享链接库)进行编译 生成动态链接可执行文件
我们使用 go help buildmode 可以看到 go 可以以多种方式进行构建,默认使用静态链接库. ➜ src go help buildmode The 'go build' and 'go ...
- 初级模拟电路:3-8 BJT数据规格书(直流部分)
回到目录 本小节我们以2N4123通用型BJT硅基晶体管为例,来介绍如何阅读BJT的数据规格书,点此链接可以阅读和下载2N4123的数据规格书. 1. 总体性能 打开datasheet后,首先看标题: ...
- linux kernel下输入输出console如何实现【转】
转自:https://blog.csdn.net/skyflying2012/article/details/41078349 最近工作在调试usb虚拟串口,让其作为kernel启动的调试串口,以及u ...
- The 2019 Asia Nanchang First Round Online Programming Contest
传送门 A. Enju With math problem 题意: 给出\(a_1,\cdots,a_{100}\),满足\(a_i\leq 1.5*10^8\). 现在问是否存在一个\(pos\), ...
- Git 提交代码到远程仓库
Git 命令 一.Git如何把本地代码推送到远程仓库 1. 拉取指定分支代码 git clone -b dev https://github.com/crazyfzw/RecycleViewWithH ...