UNPKG

bcvwallet-jssdk

Version:
147 lines (135 loc) 4.77 kB
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <link rel="shortcut icon" href="./assets/favicon.ico"> <title>JSSDK-demo</title> <style> * { margin:0; padding:0; } body { padding-top: 60px; padding-bottom: 60px; } .header { position: fixed; left: 0; right: 0; top: 0; height: 60px; font-size: 12px; text-align: center; color: #fff; line-height: 60px; background-color: #6093EC; } .ctn { padding: 4px 15px 0; } .ctn img { width: 100%; margin-top: 12px; box-shadow: 0 0 10px rgba(0,0,0,.1); } .footer { position: fixed; left: 0; right: 0; bottom: 0; display: flex; } .footer a { flex: 1; height: 50px; text-decoration: none; text-align: center; font-size: 12px; line-height: 50px; } .share { background-color: #F6F6F6; color: #333; } .buy { background-color: #6093EC; color: #fff; } button { font-size: 20px; } </style> </head> <body> <h1 class="header">PRODUCT</h1> <section class="ctn"> <img src="./assets/img1.jpg" alt=""> <img src="./assets/img2.jpg" alt=""> </section> <footer class="footer"> <a class="share" href="javascript:;" onclick="handleShare()">SHARE</a> <a class="buy" href="javascript:;" onclick="handlePay()">BUY</a> </footer> <script type="text/javascript" src="./bcvwallet.min.js"></script> <!-- 项目并不依赖 jQuery,这里只是作为请求数据使用 --> <script type="text/javascript" src="./assets/jquery-3.3.1.min.js"></script> <script> var isBWConfigSuccess = false // 从后端请求 config 配置数据 $.get('/index.php?api=getConfig', function (res) { // bcvWallet 初始化 bcvWallet.config({ debug: false, // 开启调试模式时会在网页底部生成一系列log记录 appId: res.appId, // 必填,第三方的唯一标识 timestamp: res.timestamp, // 必填,生成签名的时间戳 nonceStr: res.nonceStr, // 必填,生成签名的随机串 signature: res.signature,// 必填,签名 jsApiList: [] // 非必填,目前可传入空数组,后续会加入权限判断校验 }) bcvWallet.ready(function () { // config 配置成功 可以调用其他接口了 // 备注:调用 config 进行配置是一个客户端的异步操作,时间长短会受到网络环境的影响,如果 config 接口还未返回ready 或 error 回调就调用其他接口,该接口会调用失败,在 Android 手机上可能会导致整个配置过程失效,因此建议开发者设置一个变量管理 config 配置的状态,在 config 调用成功之前,不允许用户直接触发其他接口的调用。(此问题将在下一个版本更新中修复) isBWConfigSuccess = true }) bcvWallet.error(function (res) { // config 配置失败 错误信息会在 res.errmsg 中给出 console.log(res.errmsg) }) }) // 调用客户端分享 function handleShare () { if (!isBWConfigSuccess) return alert('币威钱包初始化中,请稍后再试...') bcvWallet.shareWechat({ type: 'link', title: '这里是分享标题', // 非必填,分享标题(如果没有,自动调用网页title) thumb: 'http://p8k1ocuzy.bkt.clouddn.com/alipayCode_1539691504259_8519.png', // 非必填,分享缩略图 desc: '这里是分享描述内容', // 非必填,分享描述 url: window.location.href, // 非必填,分享链接(如果没有,默认使用当前网页链接) textCopy: '用于复制的文案', // 非必填,可以复制的文案,用户可以点击按钮复制该文案 success: function (res) { // 分享成功(包括复制成功)后的回调函数 } }) } // 调用客户端支付 function handlePay () { // 发送购买请求给后端,后端去币威开放平台下单,并把订单数据返回给前端页面用于调起支付 $.get('/index.php?api=transferOrder', function(res) { if (!isBWConfigSuccess) return alert('币威钱包初始化中,请稍后再试...') bcvWallet.requestPayment({ accessToken: res.accessToken, // 必填,应用授权接口调用凭证 tradeNo: res.tradeNo, // 必填,开放平台订唯一单号 requestTime: res.requestTime, // 请求时间 success: function (res) { // 支付成功后的回调函数 alert('支付成功') } }) }) } </script> </body> </html>