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 ...
随机推荐
- mybatis 启用延迟加载和按需加载配置
启用延迟加载和按需加载 Mybatis配置文件中通过两个属性lazyLoadingEnabled和aggressiveLazyLoading来控制延迟加载和按需加载. lazyLoadingEnabl ...
- WebGL简易教程(七):绘制一个矩形体
目录 1. 概述 2. 示例 2.1. 顶点索引绘制 2.2. MVP矩阵设置 2.2.1. 模型矩阵 2.2.2. 投影矩阵 2.2.3. 视图矩阵 2.2.4. MVP矩阵 3. 结果 4. 参考 ...
- 手动模拟JDK动态代理
为哪些方法代理? 实现自己动态代理,首先需要关注的点就是,代理对象需要为哪些方法代理? 原生JDK的动态代理的实现是往上抽象出一层接口,让目标对象和代理对象都实现这个接口,怎么把接口的信息告诉jdk原 ...
- MongoDB 学习笔记之 分片和副本集混合运用
分片和副本集混合运用: 基本架构图: 搭建详细配置: 3个shard + 3个replicat set + 3个configserver + 3个Mongos shardrsname Primary ...
- MongoDB 学习笔记之 MongoDB导入导出
MongoDB数据导入导出: mongoexport: -host 机器 -port 端口 -u 用户名 -p 密码 -d 库名 -c 表名 -f 列名 -o 导出的文件名 -q 查询条件 --csv ...
- 【SQL】sql统计不同类别的不同状态的数目
例子:某主机下有5149个设备,设备分不同类别,设备运行会有不同状态(1-正常.2-告警.3-故障.0-离线) sql: SELECT t.DEVICE_TYPE_NAME,SUM(CASE t.DE ...
- 重构网页过程中的小tips
1.display为inline-block的元素可以使用virtical-align:middle来使得元素垂直居中对齐 2.在一些按钮标签或者mark标签中,如果文本内容确定不会改变长度的话,可以 ...
- 洛谷 P3745 [六省联考2017]期末考试
题目描述 有 nnn 位同学,每位同学都参加了全部的 mmm 门课程的期末考试,都在焦急的等待成绩的公布. 第 iii 位同学希望在第 tit_iti 天或之前得知所有课程的成绩.如果在第 tit_ ...
- Pycharm(Mac版)快捷键操作篇
Mac键盘符号和修饰键说明 ⌘ Command ⇧ Shift ⌥ Option ⌃ Control ↩︎ Return/Enter ⌫ Delete ⌦ 向前删除键(Fn+Delete) ↑ 上箭头 ...
- GUI tkinter (Canvas)绘图篇
from tkinter import * root = Tk()root.title("中国象棋棋盘手绘") can = Canvas(root,width = 400, hei ...