HBuilder支持手机银联在线支付支付吗

输入关键字或相关内容进行搜索
有没有人遇到过
预支付码已经成功申请下来,也是APP支付方式,但是返回给HBuilder的时候就是不能调用微信支付,怎么回事呢?
微信支付、分享、登陆说明
1,查看appid是否配置(离线打包在AndroidManifest.xml配置,云打包在manifest.json配置)
2,申请appid时所用证书签名与apk的签名证书必须一致
3,申请appid时填写包名与打包时候所填写包名必须一致
4,查看提示错误代码、信息
5,使用IDE自带HBuilder调试HelloH5中支付模块是否能够成功
6,对比客户端js代码、服务器代码是否匹配
7,服务器下发的json需要对json里的key进行字母排序,排序后生成sign(参考/dcloudio/H5P.Server/tree/master/payment)
8, 开发平台配置的包名与签名跟apk的签名文件是否一致
9,服务生成订单时设置的appid、appkey等参数是否正确离线打包不能正确回调还请检查是否存在并在AndroidManifest.xml配置了如下Activity:(manifest节点package属性为包名)
a,微信支付依赖 【包名】.wxapi.WXPayEntryActivity 如:io.dcloud.HBuilder.wxapi.WXPayEntryActivity 其中io.dcloud.HBuilder为包名
b,微信分享,微信登陆依赖 【包名】.wxapi.WXEntryActivity 如:io.dcloud.HBuilder.wxapi.WXEntryActivity 其中io.dcloud.HBuilder为包名
要回复问题请先或
关注: 3 人2926人阅读
Web3.0(17)
mui的风格样式是最接近原生样式的,支持html CSS javascript编写UI代码,代码提示风格比较快。可以扩展提示词。nativeUI管理系统原生界面,可用于弹出系统原生提示对话框窗口、时间日期选择对话框、等待对话框等。
HBuilder封装成跨平台的HTML5plus规范,并将规范公开于,不做厂商私有API。包括二维码、摇一摇、语音输入、地图、支付、分享、文件系统、通讯录等常用API,可以方便简单的编写,并且可跨平台。
h5+规范
硬件访问:
Accelerometer模块管理设备加速度传感器
Audio模块用于提供音频的录制和播放功能
Barcode模块管理条码扫描
Events模块管理客户端事件,包括系统事件,如扩展API加载完毕、程序前后台切换等。
Camera模块管理设备的摄像头
Key管理设备按键事件
Proximity模块管理设备距离传感器,可获取当前设备的接近距离信息,通过plus.proximity可获取设备距离传感管理对象。
Device模块管理设备信息,用于获取手机设备的相关信息,如IMEI、IMSI、型号、厂商等。通过plus.device获取设备信息管理对象。
Orientation模块管理设备的方向信息,包括alpha、beta、gamma三个方向信息,通过plus.orientation可获取设备方向管理对象
软件访问:
Contacts模块管理系统通讯录,用于可对系统通讯录进行增、删、改、查等操作。
Messaging模块管理设备通讯功能,可用于短信、彩信、邮件发送等
Gallery模块管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文件到相册等功能。通过plus.gallery获取相册管理对象
Downloader模块管理网络文件下载任务,用于从服务器下载各种文件,并支持跨域访问操作
地理信息:
Geolocation模块管理设备位置信息,用于获取地理位置信息,如经度、纬度等。
文件操作:
IO模块管理本地文件系统,用于对文件系统的目录浏览、文件的读取、文件的写入等操作
Maps模块管理地图控件,用于在web页面中显示地图控件,提供各种接口操作地图控件,如添加标点、路线等。
第三方登陆授权,支付,分享:
OAuth模块管理客户端的用户授权登录验证功能,允许应用访问第三方平台的资源。
Payment模块管理支付功能,用于提供网页安全支付能力,支持通过Web接口进行支付操作。通过plus.payment可获取支付管理对象。
Share模块管理客户端的社交分享功能,提供调用终端社交软件的分享能力。通过plus.share可获取社交分享管理对象。
Push模块管理推送消息功能,可以实现在线、离线的消息推送,通过plus.push可获取推送消息管理对象。
语音识别:
Speech模块管理语音输入功能,提供语音识别功能,可支持用户通过麦克风设备进行语音输入内容。通过plus.speech可获取语音输入管理对象。
Statistic模块管理统计功能,用于提供应用内统计的能力,支持统计和分析用户属性和用户行为数据。通过plus.statistic可获取统计管理对象。
Storage模块管理应用本地数据存储区,用于应用数据的保存和读取。应用本地数据与localStorage、sessionStorage的区别在于数据有效域不同,前者可在应用内跨域操作,数据存储期是持久化的,并且没有容量限制。通过plus.storage可获取应用本地数据管理对象。
Runtime模块管理运行环境,可用于获取当前运行环境信息、与其它程序进行通讯等。通过plus.runtime可获取运行环境管理对象。
Uploader模块管理网络上传任务,用于从本地上传各种文件到服务
Webview模块管理应用窗口界面,
网络请求:
XMLHttpRequest模块管理网络请求,与标准HTML中的XMLHttpRequest用途一致
Zip模块管理文件压缩和解压,通过plus.zip可获取压缩管理对象。
扩展能力:
如果官方没有提供的能力可以使用nativejs扩展
nativejs 将iOS和安卓API封装映射为js代码,可以在js代码内调用,nativeObj管理系统原生对象。Native.js把js战火烧到了原生应用战场。但我们可以使用js直接调原生API,语法是js语法,API命名是原生命名。目前只是系统的API
开发的第二种方式,把SDK集成进入Xcode,5+ SDK
可以用Xcode开发,支持自定义ios代码,传值调用,这样实现socket,可以用原生代码。
h5支持websocket,不支持udp,通过websocket可以实现长连接
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1641192次
积分:16021
积分:16021
排名:第681名
原创:44篇
转载:565篇
评论:203条
本博收藏大部分文章为转载,并在文章开头给出了原创作者及原文出处,如有再转,敬请保留相关信息,这是大家对原创作者劳动成果的自觉尊重!!
早期遗留的部分文章未能及时给出相关原创信息,在此谨致歉意,后续会尽全力予以纠正。如为您带来不便,请于本博下留言,谢谢配合。
(1)(6)(4)(1)(7)(2)(18)(17)(17)(5)(3)(8)(11)(8)(6)(11)(3)(1)(13)(16)(10)(8)(15)(12)(4)(8)(3)(5)(1)(1)(1)(4)(2)(1)(4)(5)(3)(9)(18)(5)(1)(2)(2)(9)(3)(4)(1)(4)(3)(2)(1)(2)(1)(1)(6)(14)(1)(22)(4)(1)(13)(7)(9)(7)(4)(26)(10)(22)(9)(15)(12)(11)(1)(4)(3)(4)(1)(10)(7)(3)(12)(17)(1)(9)(17)(18)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'Hbuilder常用功能汇总
时间: 15:11:01
&&&& 阅读:482
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&引用
样式表: mui.min.css
Js:mui.min.js
var webView=plus.webview.currentWebview();//获取当前页
var webView=plus.webview.currentWebview().opener();//获取上一页的页面
var webView= plus.webview.currentWebview().parent();//获取父级页面
var webView =plus.webview.getWebviewById("index");//根据Id获取页面
var webView = plus.webview.getLaunchWebview();//获取主页面
var all = plus.webview.all();//获取所有页面
webViewObj.reload(true);//刷新页面
自定义返回事件
返回:mui.back(),可在点击事件里添加
Beforeback:自定义返回按钮事件,如果要禁用返回时间添加&
1 &script type="text/javascript"&
(function($, doc) {
mui.init({
beforeback: function() {
var webView = plus.webview.currentWebview();
<span style="color: #
var pWebView = webView.opener();
<span style="color: #
<span style="color: #
$.fire(pWebView, "breck_page");
<span style="color: #
<span style="color: #
return false;
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
$.plusReady(function() {});
<span style="color: #
<span style="color: #
}(mui, document));
<span style="color: # &/script&
打开页面/关闭页面
打开页面时用mui. openWindow()方法,url:打开页面路径,id:页面Id、styles:页面样式、extras:参数(从A打开B页面在B页面可以取到该参数,)
1 &script type="text/javascript"&
(function($, doc) {
mui.init();
$.plusReady(function() {
$.openWindow({
<span style="color: #
<span style="color: #
url: "course_info.html",
<span style="color: #
<span style="color: #
id: "course_info.html",
<span style="color: #
<span style="color: #
styles:{ top:"50px"}
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
courseId: courseId
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
}(mui, document));
<span style="color: #
<span style="color: # &/script&
关闭页面webViewObj.close(“slide-out-bottom”,300);参数1:关闭动画,参数2:动画时间
获取当前页面 var webView = plus.webview.currentWebview();
获取content字符串 var content= webView.
获取当前序号,要取int型需要进行转换 var index= parseInt(webView.index);
预加载页面
通过mui.init方法中的preloadPages参数进行配置.
1 mui.init({
preloadPages:[
url:prelaod-page-url,
id:preload-page-id,
<span style="color: #
<span style="color: #
styles:{},//窗口参数
<span style="color: #
<span style="color: #
extras:{},//自定义扩展参数
<span style="color: #
<span style="color: #
subpages:[{},{}]//预加载页面的子页面
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
preloadLimit:5//预加载窗口数量限制(一旦超出,先进先出)默认不限制
<span style="color: #
<span style="color: # });
该种方案使用简单、可预加载多个页面,但不会返回预加载每个页面的引用,若要获得对应webview引用,还需要通过plus.webview.getWebviewById方式获得;另外,因为mui.init是异步执行,执行完mui.init方法后立即获得对应webview引用,可能会失败,例如如下代码:
mui.init({
& preloadPages:[
&&&&& url:‘list.html‘,
&&&&& id:‘list‘
var list = plus.webview.getWebviewByid(‘list‘);//这里可能返回空;
方式二:通过mui.preload方法预加载.
1 &script type="text/javascript"&
(function ($, doc) {
mui.init();
$.plusReady(function () {
mui.preload({
url: ‘test_select_info.html‘,
id: page_id,
styles: {},
extras: {},
<span style="color: #
<span style="color: #
page.show("none");
<span style="color: #
<span style="color: #
}(mui, document));
<span style="color: # &/script&
自定义事件
window.addEventListener(EventName,function(){});
EventName:事件名称
Function(){}:时间内容
B页面调取A页面的自定义事件
mui.fire(webViewObj, EventName);
webViewObj: 目标页面(类型obj)
EventName:事件名称(类型string)
异步获取数据
1 Var url=” http:///App/Home/Index”
3 mui.ajax(url, {
data: loginInfo,
dataType: ‘json‘, //服务器返回json格式数据
type: ‘post‘, //HTTP请求类型
<span style="color: #
<span style="color: #
timeout: 10000, //超时时间设置为10秒;
<span style="color: #
<span style="color: #
success: function(data) {
<span style="color: #
<span style="color: #
if(data.code == 0) //登录成功将数据存入本地
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
error: function(xhr, type, errorThrown) {
<span style="color: #
  console.log(errorThrown);
<span style="color: #
<span style="color: # });
var btnArray = [‘是‘,‘否‘ ];
var pageurl=nowPage.getURL();
$.confirm(‘您确定要结束当前练习?‘, ‘温馨提示‘, btnArray, function(e) {
if (e.index == 0) {
//点击是时触发
//点击否时触发
<span style="color: #
添加子页面
mui.init({
subpages:[{
url:your-subpage-url,//子页面HTML地址,支持本地地址和网络地址
id:your-subpage-id,//子页面标志
top:subpage-top-position,//子页面顶部位置
bottom:subpage-bottom-position,//子页面底部位置
width:subpage-width,//子页面宽度,默认为100%
height:subpage-height,//子页面高度,默认为100%
extras:{}//额外扩展参数
在有些情况下不能在mui.init()里添加子页面需要在页面加载之后添加子页面
Var webView= plus.webview.currentWebview();//获取当前页
var sub = plus.webview.create(pageId, subpages[i].id, styles, extras); //创建子页面
webView.append(sub);给当前页添加子页面
上拉刷新下拉加载
1 &script type="text/javascript" src="../../js/mui.pullToRefresh.js"&&/script&
2 &script type="text/javascript" src="../../js/mui.pullToRefresh.material.js"&&/script&
3 &script type="text/javascript"&
(function($, doc) {
mui.init();
$.plusReady(function() {
Var pullToRefresh = mui("#pullrefresh").pullToRefresh({
callback: function() {
<span style="color: #
//下拉刷新事件
<span style="color: #
pullToRefresh.endPullDownToRefresh();//结束下拉刷新事件
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
callback: function() {
<span style="color: #
//上拉加载事件
<span style="color: #
pullToRefresh.endPullUpToRefresh();//结束上拉加载事件
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
}(mui, document));
<span style="color: # &/script&
<span style="color: # document.getElementById("id").addEventListener(“tap”,function(){
<span style="color: #   //事件代码
<span style="color: # });
<span style="color: # //或者
<span style="color: # mui(‘#pano-list‘).on(‘tap‘, ‘.recommend-item‘,function(){
<span style="color: #   //事件代码
<span style="color: # });
使用mui.trigger()方法可以动态触发特定DOM元素上的事件。
自动触发按钮的点击事件:
1 var btn = document.getElementById("submit");
3 //监听点击事件
5 btn.addEventListener("tap",function () {
console.log("tap event trigger");
<span style="color: #
<span style="color: # //触发submit按钮的点击事件
<span style="color: #
<span style="color: # mui.trigger(btn,‘tap‘);
使用Native.js实现打开页面默认弹出软键盘
1 var nativeWebview, imm, InputMethodM
3 var initNativeObjects = function() {
if (mui.os.android) {
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass("android.content.Context");
<span style="color: #
<span style="color: #
InputMethodManager = plus.android.importClass("android.view.inputmethod.InputMethodManager");
<span style="color: #
<span style="color: #
imm = main.getSystemService(Context.INPUT_METHOD_SERVICE);
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
nativeWebview = plus.webview.currentWebview().nativeInstanceObject();
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: # };
<span style="color: #
<span style="color: # var showSoftInput = function() {
<span style="color: #
<span style="color: #
var nativeWebview = plus.webview.currentWebview().nativeInstanceObject();
<span style="color: #
<span style="color: #
if (mui.os.android) {
<span style="color: #
<span style="color: #
//强制当前webview获得焦点
<span style="color: #
<span style="color: #
plus.android.importClass(nativeWebview);
<span style="color: #
<span style="color: #
nativeWebview.requestFocus();
<span style="color: #
<span style="color: #
imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
nativeWebview.plusCallMethod({
<span style="color: #
<span style="color: #
"setKeyboardDisplayRequiresUserAction": false
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
setTimeout(function() {
<span style="color: #
<span style="color: #
//此处可写具体逻辑设置获取焦点的input
<span style="color: #
<span style="color: #
var inputElem = document.querySelector(‘input‘);
<span style="color: #
<span style="color: #
inputElem.focus();
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: # };
<span style="color: #
<span style="color: # mui.plusReady(function() {
<span style="color: #
<span style="color: #
initNativeObjects();
<span style="color: #
<span style="color: #
showSoftInput();
<span style="color: #
<span style="color: # });
微信支付首次支付成功,后面支付报-1错误
这个是签名生成工具:
https://open./cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open&token=&lang=zh_CN
应用签名的修改位置:
开放平台--&管理中心(页面顶部)--&移动应用(左上角)--&点击查看按钮--&跳转到应用详情页面,
在页面末尾有个开发信息,然后点击修改。
签名修改后,要过一段时间才会生效,我过了10分钟左右。
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!提供主流cms教程
提供数据库教程和设计
提供各种常见网页js代码
提供常用的JS特效代码及在线演示
提供jQuery插件教程及插件下载
提供服务器常见问题及教程
提供站长技术、站长资讯等内容
提供常用开发手册和开发工具
您现在的位置:& >
Hello MUI增加BeeCloud支付集成示例,无服务端也可完成支付全流程
导读:DCloud和BeeCloud合作的支付业务,与普通的三方支付不同。它仅需要工程师写前端App的js代码,调用Plus的原生支付接口进行支付宝和微信的原...
DCloud和BeeCloud合作的支付业务,与普通的三方支付不同。
它仅需要工程师写前端App的js代码,调用Plus的原生支付接口进行支付宝和微信的原生支付,不需要服务器编写代码,即可收款到开发商自己的微信或支付宝的账户里。
需要注意钱并不流经DCloud或beecloud的服务器,开发商向微信和支付宝申请账户,最终用户支付的钱直接到达开发商在微信或支付宝里申请的账户。
目前还不支持银联,下个版本会支持银联支付,同时会扩展至无plus环境的普通浏览器上自动兼容wap支付。
体验DEMO的方式:HBuilder 6.9版本后新建的Hello mui项目含有cloud pay模板。
在注册,并完成企业认证。
在创建你的第一个APP。
配置支付参数
配置您所需的支付渠道的支付参数,具体请参考,如图:
manifest.json配置
模块权限配置
勾选payment模块
需要在plus.payment-支付中配置scheme
支付宝支付
自定义填写,推荐使用小写字符串,不能填写alipay,AliPay等关键字
固定填写,微信开放平台创建应用的APPID
& 这些配置都是云打包之后生效,所以测试微信支付,必须云打包之后,在手机上运行,才能正常调起微信客户端支付。否则在数据正常的情况下,调起微信客户端后,会出现异常(只显示一个确定按钮)
真机运行使用的是DCloud公司的支付配置信息,此时付款会付给DCloud。
在页面中引入beecloud.js
( 在Hello mui里含有本文件)
src=&/static/css/default/img/default.jpg& data-original=&beecloud.js&
构建支付参数发起支付
src=&/static/css/default/img/default.jpg& data-original=&beecloud.js&
type=&text/javascript&
function beecloudPay(bcChannel) {
* 构建支付参数
* 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: &c37d661d-7e61-49ea-96a5-68c34e83db3b&,
channel: bcChannel,
title: &DCloud&,
total_fee: 1,
bill_no: beecloud.genBillNo(),
optional: {&#39;uerId&#39;:&#39;beecloud&#39;,&#39;phone&#39;:&#39;&#39;},
bill_timeout: 360
payData: 支付参数
cbsuccess: 支付成功回调
cberror: 支付失败回调
beecloud.payReq(payData, function(result) {
mui.alert(&----- 支付成功 -----& + str);
}, function(e) {
mui.alert(&----- 支付失败 -----\n& +&错误码:&+ e.code + &#39;\n&#39; + e.message);
转载请注明(B5教程网)原文链接:
网友评论:

我要回帖

更多关于 os不支持银联支付 的文章

 

随机推荐