NGToolsCSharp/NGTools/Scripts/MUI/examples/beecloud.html

150 lines
5.0 KiB
HTML
Raw Normal View History

2024-09-13 08:44:13 +00:00
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<link rel="stylesheet" href="../css/mui.min.css">
<script src="../js/mui.min.js"></script>
<script type="text/javascript" charset="utf-8">
mui.init();
</script>
<!--标准mui.css-->
<style>
.mui-content-padded {
padding: 10px;
}
body,
body .mui-content {
background-color: #fff !important;
}
#total {
-webkit-user-select: text;
text-align: right;
padding: 0 1em;
border: 0px;
border-bottom: 1px solid #007aff;
border-radius: 0;
font-size: 16px;
width: 30%;
outline: none;
}
textarea{
margin-top: 10px;
}
.mui-btn-block{
padding: 8px 5px;
}
</style>
</head>
<body>
<header class="mui-bar mui-bar-nav">
<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
<h1 class="mui-title">cloud Pay云端支付</h1>
</header>
<div id="dcontent" class="mui-content">
<div class="mui-content-padded">
<p style="text-indent: 22px;">
这是mui无后端开发示例集成BeeCloud云支付服务通过js连接云端支付服务器实现支付功能的全流程开发。 如下为一个支付示例为DCloud提供的免费、开源软件进行捐赠吧
</p>
<div style="padding: 0 1em;text-align:center">
捐赠金额:
<input id="total" type="number" value="1.0" style="text-align:center" />
</div>
<div class="mui-content-padded oauth-area">
<!--探测本机软件,自动显示支付宝和微信支付方式-->
<!--银联在线一直显示-->
<div id='UN_WEB' class="mui-btn mui-btn-blue mui-btn-block pay" style="display: none;">
银联在线
</div>
</div>
<ul class="mui-table-view">
<li class="mui-table-view-cell">
支付方式: <span id="channel"></span>
</li>
<li class="mui-table-view-cell">
订单号: <span id="bill_no"></span>
</li>
<li class="mui-table-view-cell">
支付金额: <span id="total_fee"></span>
</li>
<li class="mui-table-view-cell">
支付状态:<span id="status"></span>
</li>
<textarea name="" id="status_msg" cols="20" rows="5"></textarea>
</ul>
</div>
</div>
</body>
<script src="../js/beecloud.js">
</script>
<script type="text/javascript">
mui('.mui-content-padded').on('tap', '.pay', function() {
var channel_id = null;
switch (this.id) {
case 'alipay':
channel_id = 'ALI_APP';
break;
case 'wxpay':
channel_id = 'WX_APP';
break;
case 'UN_WEB':
channel_id = 'UN_WEB';
break;
default:
break;
}
beecloudPay(channel_id);
document.getElementById("channel").innerHTML = channel_id;
document.getElementById("total_fee").innerHTML = document.getElementById('total').value;
document.getElementById("bill_no").innerHTML = beecloud.genBillNo();
})
function beecloudPay(bcChannel) {
//因DCloud尚未申请银联账号故支付宝、微信使用的是DCloud的appid银联暂时使用BeeCloud的appid开发者这里无需判断直接写一个appid即可
var _appid = bcChannel == "UN_WEB" ? "c37d661d-7e61-49ea-96a5-68c34e83db3b":"44f01a13-965f-4b27-ba9f-da678b47f3f5"
/*
* 构建支付参数
*
* app_id: BeeCloud控制台上创建的APP的appid必填
* title: 订单标题32个字节最长支持16个汉字必填
* total_fee: 支付金额以分为单位大于0的整数必填
* bill_no: 订单号8~32位数字和/或字母组合,确保在商户系统中唯一,必填
* optional: 扩展参数,可以传入任意数量的key/value对来补充对业务逻辑的需求;此参数会在webhook回调中返回; 选填
* bill_timeout: 订单失效时间,必须为非零正整数单位为秒必须大于360。选填
*/
var payData = {
app_id: _appid,
channel: bcChannel,
title: "DCloud项目捐赠",
total_fee: document.getElementById('total').value * 100,
bill_no: beecloud.genBillNo(),
optional: {
'uerId': 'beecloud',
'phone': '4006280728'
},
bill_timeout: 360,
return_url: "http://www.dcloud.io/demo/pay" //wap支付成功后的回跳地址
};
/*
* 发起支付
* payData: 支付参数
* cbsuccess: 支付成功回调
* cberror: 支付失败回调
*/
beecloud.payReq(payData, function(result) {
document.getElementById("status").innerHTML = 'success';
document.getElementById("status").style.color = 'green'
document.getElementById("status_msg").innerHTML = "-------- 支付成功 --------" + "\n感谢您的支持,我们会继续努力完善产品";
console.log(result);
}, function(e) {
document.getElementById("status").innerHTML = 'failed';
document.getElementById("status").style.color = 'red'
document.getElementById("status_msg").innerHTML = "-------- 支付失败 --------\n" + "错误码:" + e.code + '\n' + e.message;
});
}
</script>
</html>