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 ...
随机推荐
- Git很麻烦?不存在的!掌握这几招就够了
废话不多说,下面直接开始了! 查看原文 确保代码库是最新的,先用这条命令把你的代码拉取到本地 git clone -- 修改完代码后,按顺序执行下面四个命令 git pull git add * /r ...
- TensorFlow2.0(四):填充与复制
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- win7远程连接全屏和窗口模式切换
最近开发需要win7远程连接,我知道在连接的时候可以设置全屏模式 但是进去之后想要切换就只能通过快捷键了上网查了一下是ctrl+alt+break.网上说的没有错.我查官方文档也是这样.但是我按的时候 ...
- 下载git2.2.1并将git添加到环境变量中
># wget https://github.com/git/git/archive/v2.2.1.tar.gz > # tar zxvf v2.2.1.tar.gz ># cd g ...
- uC/OS-III 任务详解(四)
uC/OS系统的任务一般都放在最开始介绍,我放在第四章主要是对模糊的概念作清晰的讲解. 从用户的角度来看,uC/OS-III 中的任务可以分为5 种状态,分别是休眠态.就绪态.运行态.挂起态和中断态, ...
- Mysql高手系列 - 第19篇:mysql游标详解,此技能可用于救火
Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 这是Mysql系列第19篇. 环境:mysql5.7.25,cmd命令中进行演示. 代码中被[]包含的表示可选,|符 ...
- postgresql从库搭建--逻辑复制
1 物理复制及逻辑复制对比 前文做了PostgreSQL物理复制的部署,其有如下主要优点 物理层面完全一致,是主要的复制方式,其类似于Oracle的DG 延迟低,事务执行过程中产生REDO recor ...
- Linxu下Yii2的POST请求被拒经历
Linxu下Yii2的POST提交被拒经历 介于对Yii2的使用,浅谈一下自己的经验,在以往的项目中我使用的框架是Yii1,由于Yii2的出现,所以极力的想使用一下它的新特性. 我的使用环境Linux ...
- 利用python+graphviz绘制数据结构关系图和指定目录下头文件包含关系图
作为一名linux系统下的C语言开发,日常工作中经常遇到两个问题: 一是分析代码过程中,各种数据结构互相关联,只通过代码很难理清系统中所有结构体的整体架构,影响代码消化的效率; 二是多层头文件嵌套包含 ...
- opencv::自定义角点检测
#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespac ...