Mui 微信支付、支付宝支付

利用mui 发起手机微信和支付宝支付
payStatement :调起微信支付接口的参数

参考文档: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2
/**
* 支付
* @param {Object} payType 支付类型
* @param {Object} payStatement 调起支付宝或微信的statment支付订单信息
*/
paywx(payType, payStatement) { /***判断支付通道****/
//最终的支付通道
var channel;
/***
* 用于标识支付通道:
* "alipay" - 表示支付宝;
* "wxpay" - 表示微信支付;
*/
var payId; //支付标识
if(payType == "ALIPAY_ANDROID") {
payId = "alipay";
} else {
payId = "wxpay";
} // 取出支付宝和微信的支付通道
plus.payment.getChannels(function(channels) {
mui.each(channels, function(index, element) {
if(element.id == payId) {
channel = element;
}
});
if(!channel) {
mui.toast('获取支付通道失败,请重试!');
}
setTimeout(function() {
mui.confirm('支付已完成', '提示', ['支付遇到问题', '支付完成'], function(e) {
if(e.index == 1) {
app.tokenAjax_Get({
url: API_URL_GET_ORDER_STATUS + dataSource.orderId,
success: function(result) {
if(result.status == 1) {
var status = result.data;
if(status == "JUST_CREATED") {
mui.toast('订单未支付');
} else if(status == 'CANCEL') {
mui.toast('订单已被取消');
//清除定时器
clearInterval(timer);
//打开
plus.webview.currentWebview().close();
plus.webview.getWebviewById("pay").close();
plus.webview.getWebviewById("order").close();
} else {
//清除定时器
clearInterval(timer);
//打开
app.openRefreshOrderListPage();
}
}
},
error: function(xhr) {
app.httpError(xhr.status);
}
});
}
}, 'div')
}, 3000);
//发起支付
plus.payment.request(channel, payStatement, function(result) {
mui.toast('支付完成');
/**
*查询订单状态是否已支付
* 轮询查询订单状态
*
*/
var timer1 = setInterval(function() {
app.tokenAjax_Get({
url: API_URL_GET_ORDER_STATUS + dataSource.orderId,
success: function(result) {
if(result.status == 1) {
var status = result.data;
if(status == "JUST_CREATED") {
mui.toast('订单未支付');
} else if(status == 'CANCEL') {
mui.toast('订单已被取消');
//清除定时器
clearInterval(timer);
clearInterval(timer1)
//打开
plus.webview.currentWebview().close();
plus.webview.getWebviewById("pay").close();
plus.webview.getWebviewById("order").close();
} else {
//清除定时器
clearInterval(timer);
clearInterval(timer1)
//打开
app.openRefreshOrderListPage();
}
}
},
error: function(xhr) {
app.httpError(xhr.status);
}
});
}, 1000); }, function(error) {
console.log(JSON.stringify(error));
mui.toast("支付失败");
}); }, function(e) {
mui.toast("获取支付通道列表失败:" + e.message);
}); }
更多错误信息请参考支付(Payment)规范文档:http://www.html5plus.org/#specification#/specification/Payment.html
注意: ( 微信支付提示{"code":-100,"message":"[payment微信:-1]General errors"} )
- 微信支付安卓不支持真机调试
- 需要打包到手机测试, 打包测试需要使用自己的私有证书打包apk
Mui 微信支付、支付宝支付的更多相关文章
- MUI 微信 和支付宝支付 (前台代码)
<!-- 校园公告详情界面 用于显示校园公告的详情信息 在校园公告界面点击某一条目后 进入本界面查看详情 --> <!DOCTYPE html> <html> &l ...
- 微信和支付宝支付模式详解及实现(.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 ...
- 微信端支付宝支付,iframe改造,解决微信中无法使用支付宝付款和弹出“长按地址在浏览器中打开”
微信对支付宝的链接屏蔽了, https://mapi.alipay.com/gateway.do?_input_charset=utf-8¬ify_url=http%3A%2F%2Fzh ...
- 微信公众号中的支付宝支付与微信支付 && 支付宝支付问题(微信bug)
一般,在微信公众号中的商城都是需要支持微信支付和支付宝支付的,当然,较大的公司对于鹅厂和阿里的站队就不说了,所以这里简单记录一下支付宝支付和微信支付的主要流程.说是简单介绍,这是因为确实不难,因为前端 ...
- iOS三方支付--微信支付/支付宝支付
一.微信支付 1.注册账号并申请app支付功能 公司需要到微信开放品台进行申请app支付功能 , 获得appid和微信支付商户号(mch_id)和API秘钥(key) . Appsecret(secr ...
随机推荐
- js实现敲回车键登录
任何一个网站页面都有登陆界面,很多时候在输入好用户名和密码后,还要用鼠标去点一个类似于登陆什么的按钮或者链接.这样你才能进网站做你喜欢做的事情. 有时候我就在想是不是能在输入好我该输入的东西后,直接敲 ...
- Spring Boot 监听 Activemq 中的特定 topic ,并将数据通过 RabbitMq 发布出去
1.Spring Boot 和 ActiveMQ .RabbitMQ 简介 最近因为公司的项目需要用到 Spring Boot , 所以自学了一下, 发现它与 Spring 相比,最大的优点就是减少了 ...
- 蓝松短视频SDK支持AE模板, 可做类似微商视频, 小柿饼的效果等
AE模板: 是指设计师用Adobe After Effect做好各种视频动画,比如炫酷视频,文艺/搞笑的场景,相册效果等,根据我们的指导文件导出.蓝松SDK会解析导出的文件,自动还原成AE设计时的动画 ...
- JS多线程WebWorker
JS多线程WebWorker 一,介绍与需求 1.1,介绍 Web Worker可以为JavaScript创建多线程,且Web Worker 是运行在后台的 JavaScript,独立于其他脚本,不会 ...
- 基于vue-cli、elementUI的Vue超简单入门小例子
- 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. - 开始写例子之前,先对环境的部署做点简单的介绍,其实和Vue官方的差不多. #如若没有安装过vu ...
- Chrome浏览器启动报错:应用程序无法启动,因为应用程序的并行配置不正确。
因为国庆节了,难得关一次机(可能搞IT的习惯吧),结果给祖国庆祝完70寿辰之后归来,启动电脑,就打不开Chrome浏览器了,报错如下: 应用程序无法启动,因为应用程序的并行配置不正确.有关详细信息,请 ...
- Docker 第一个HelloWorld镜像
Docker 创建第一个HelloWorld镜像: 创建Dockerfile FROM alpine CMD "echo" "Hello World!" 通过D ...
- Windows10+YOLOv3实现检测自己的数据集(1)——制作自己的数据集
本文将从以下三个方面介绍如何制作自己的数据集 数据标注 数据扩增 将数据转化为COCO的json格式 参考资料 一.数据标注 在深度学习的目标检测任务中,首先要使用训练集进行模型训练.训练的数据集好坏 ...
- 一次Commons-HttpClient的BindException排查
线上有个老应用,在流量增长的时候,HttpClient抛出了BindException.部分的StackTrace信息如下: java.net.BindException: Address alrea ...
- 【Medium 万赞好文】ViewModel 和 LIveData:模式 + 反模式
原文作者: Jose Alcérreca 原文地址: ViewModels and LiveData: Patterns + AntiPatterns 译者:秉心说 View 和 ViewModel ...