uniapp 让支付触手可及,封装了微信支付、QQ支付、支付宝支付、京东支付、银联支付常用的支付方式以及各种常用的接口
下载地址 https://gitee.com/zscat/mallplus
1.uniapp 接入各种h5支付
// 用户点击支付方式处理async toPayHandler(code) {let params = {'orderId':this.orderId};let data = {payment_code: code,payment_type: this.type}data['orderId'] = (this.type == 1 || this.type == 5 || this.type == 6) ? this.orderId : this.uidswitch (code) {case 'alipay':/*** 支付宝支付需要模拟GET提交数据*/if (this.type == 1 && this.orderId) {data['params'] = {trade_type: 'WAP',return_url: baseUrl +'wap/#/pages/order/payment/result'}} else if (this.type == 2 && this.recharge) {data['params'] = {money: this.recharge,return_url: baseUrl + 'wap/#/pages/order/payment/result'}} else if ((this.type == 5 || this.type == 6) && this.recharge) {data['params'] = {orderId: this.orderId}}let res = await Api.apiCall('get',Api.order.aliWapPay,params);console.log('============================')console.log(res);console.log('success:' + JSON.stringify(res));if (res) {document.body.appendChild(JSON.stringify(res))let testForm = document.getElementsByName('punchout_form')testForm.dispatchEvent(new Event('submit'))console.log(tempForm);testForm.submit()document.body.removeChild(testForm)}breakcase 'wechatpay':/*** 微信支付有两种* 判断是否在微信浏览器* 微信jsapi支付*/let isWeiXin = this.$common.isWeiXinBrowser()if (isWeiXin) {var transitUrl =baseUrl +'wap/#/pages/order/payment/auth?order_id=' +this.orderId +'&type=' +this.type;if (this.type == 1 && this.orderId) {data['params'] = {trade_type: 'JSAPI_OFFICIAL',url: transitUrl}} else if (this.type == 2 && this.recharge) {data['params'] = {trade_type: 'JSAPI_OFFICIAL',money: this.recharge,url: transitUrl + '&uid=' + this.uid + '&money=' + this.recharge}} else if ((this.type == 5 || this.type == 6) && this.recharge) {data['params'] = {orderId: this.orderId}}let res = await Api.apiCall('get',Api.order.webPay,params);console.log(res);if (res) {const data = res.datathis.checkWXJSBridge(data)}else{window.location.href = res.msgreturn;}} else {// 微信 H5支付if (this.type == 1 && this.orderId) {data['params'] = {trade_type: 'MWEB',return_url: baseUrl +'wap/#/pages/order/payment/result'}} else if (this.type == 2 && this.recharge) {data['params'] = {trade_type: 'MWEB',money: this.recharge,return_url: baseUrl + 'wap/#/pages/order/payment/result'}} else if ((this.type == 5 || this.type == 6) && this.recharge) {data['params'] = {orderId: this.orderId}}console.log(data);// 微信h5支付let res = await Api.apiCall('get',Api.order.wapPay,params);console.log(res);if (res) {if (res) {location.href = res} else {this.$common.errorToShow(res)}}}breakcase 'balancepay':/*** 用户余额支付**/if ((this.type == 5 || this.type == 6) && this.recharge) {data['params'] = {orderId: this.orderId}}let params1 = {'orderId':this.orderId};let data1 = await Api.apiCall('post',Api.order.balancePay,params1);console.log(data1)if (data1) {uni.redirectTo({url: '/pages/order/payment/result?order=' + JSON.stringify(data1)})}else {this.$api.msg('余额支付失败');}breakcase 'offline':/*** 线下支付*/this.$common.modelShow('线下支付说明','请联系客服进行线下支付qq:951449465',() => {},false,'取消','确定')break}
2.uniapp支持各种微信环境的支付
// 用户点击支付方式处理async toPayHandler (code) {let params = {'orderId':this.orderId,payment_type: this.type};// 判断订单支付类型if (this.type == 2 && this.recharge) {}else if ((this.type == 5 || this.type == 6) && this.recharge) {}let _this = thisswitch (code) {case 'wechatpay':let res = await Api.apiCall('post',Api.order.weixinAppletPay,params);console.log(res);if (res) {uni.requestPayment({provider: 'wxpay',timeStamp: res.timeStamp,nonceStr: res.nonceStr,package: res.package,signType: res.signType,paySign: res.paySign,success: function (e) {if (e.errMsg === 'requestPayment:ok') {_this.$common.successToShow(res.msg, () => {_this.$common.redirectTo('/pages/order/payment/result?id=' + res.id)})}}});} else {this.$common.errorToShow(res.msg)}breakcase 'balancepay':/*** 用户余额支付**/let params1 = {'orderId':this.orderId};let data1 = await Api.apiCall('post',Api.order.balancePay,params1);console.log(data1)if (data1) {uni.redirectTo({url: '/pages/order/payment/result?order=' + JSON.stringify(data1)})}else {this.$api.msg('余额支付失败');}breakcase 'offline':/*** 线下支付*/this.$common.modelShow('线下支付说明', '请联系客服进行线下支付', () => {},false, '取消', '确定')break}
3.uniapp支持app环境的支付方式
// 用户点击支付方式处理async toPayHandler (code) {let _this = thislet params = {'orderId':this.orderId};let data = {payment_code: code,payment_type: _this.type}data['ids'] = (this.type == 1 || this.type == 5 || this.type == 6) ? this.orderId : this.uidif ((this.type == 5 || this.type == 6) && this.recharge) {data['params'] = {trade_type: 'APP',formid: this.orderId}}switch (code) {case 'alipay':/*** 支付宝支付需要模拟GET提交数据*/if (_this.type == 1 && _this.orderId) {data['params'] = {trade_type: 'APP'}} else if (_this.type == 2 && _this.recharge) {data['params'] = {trade_type: 'APP',money: _this.recharge}}let res = await Api.apiCall('get',Api.order.aliAppPay,params);console.log(res);if (res) {uni.requestPayment({provider: "alipay",orderInfo: res,success: function(data){console.log(data);_this.$common.successToShow('支付成功', () => {_this.redirectHandler(res.data.payment_id)})}});} else {_this.$comon.errorToShow(res.msg)}breakcase 'wechatpay':// 微信 H5支付if (_this.type == 1 && _this.orderId) {data['params'] = {trade_type: 'APP'}} else if (_this.type == 2 && _this.recharge) {data['params'] = {trade_type: 'APP',money: _this.recharge}}// 微信app支付let res1 = await Api.apiCall('get',Api.order.appPay,params);if (res1) {// 调用微信支付uni.requestPayment({provider: "wxpay",orderInfo: res1,success: function(data){_this.$common.successToShow('支付成功', () => {_this.redirectHandler(data)})},fail:function(res){console.log(JSON.stringify(res));}});} else {_this.$common.errorToShow(res.msg)}breakcase 'balancepay':/*** 用户余额支付**/let params1 = {'orderId':this.orderId};let data1 = await Api.apiCall('post',Api.order.balancePay,params1);console.log(data1)if (data1) {uni.redirectTo({url: '/pages/order/payment/result?order=' + JSON.stringify(data1)})}else {this.$api.msg('余额支付失败');}breakcase 'offline':/*** 线下支付*/_this.$common.modelShow('线下支付说明', '请联系客服进行线下支付',() => {}, false, '取消', '确定')break}},
4.uniapp支持各种 支付宝环境的支付方式
// 用户点击支付方式处理async toPayHandler (code) {let params = {'orderId':this.orderId};let data = {payment_code: code,payment_type: this.type}data['ids'] = (this.type == 1 || this.type == 5 || this.type == 6) ? this.orderId : this.uid// 判断订单支付类型if (this.type == 2 && this.recharge) {data['params'] = {money: this.recharge,trade_type: 'JSAPI'}} else if ((this.type == 5 || this.type == 6) && this.recharge) {data['params'] = {trade_type: 'JSAPI',formid: this.orderId}}else {data['params'] = {trade_type: 'JSAPI'}}let _this = this;switch (code) {case 'alipay':let res = await Api.apiCall('get',Api.order.webPay,params);console.log(res);if (res) {uni.requestPayment({provider: 'alipay',tradeNO:res.data.trade_no,success: function (e) {if (e.errMsg === 'requestPayment:ok') {_this.$common.successToShow(res.msg, () => {_this.$common.redirectTo('/pages/order/payment/result?id=' + res.data.id);});}}});} else {this.$common.errorToShow(res.msg);}breakcase 'balancepay'://用户余额支付let params1 = {'orderId':this.orderId};let data1 = await Api.apiCall('post',Api.order.balancePay,params1);console.log(data1)if (data1) {uni.redirectTo({url: '/pages/order/payment/result?order=' + JSON.stringify(data1)})}else {this.$api.msg('余额支付失败');}break;case 'offline'://线下支付this.$common.modelShow('线下支付说明', '请联系客服进行线下支付',() => {}, false, '取消', '确定')break;}}
下载 地址 https://gitee.com/zscat/mallplus
关注公众号获取微服务版本下载和部署方式
uniapp 让支付触手可及,封装了微信支付、QQ支付、支付宝支付、京东支付、银联支付常用的支付方式以及各种常用的接口相关推荐
- 「开源系统」IJPay 让支付触手可及封装了微信支付宝等支付
介绍语 本号主要是Java常用关键技术点,通用工具类的分享:以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+d ...
- 才发现!微信、QQ和支付宝还有这么好用的翻译功能,一键轻松翻译
学习和工作中经常需要中英互译,对于英语不好的人说,只能借助浏览器一句句翻译,或者请教大神,但这两种方式要不就是太浪费时间,要不就是太麻烦别人,今天笔者就教大家,利用微信.QQ以及支付宝进行快速翻译,一 ...
- iOS9适配http,微信、qq、支付宝添加白名单
: 一.网络适配由http改成https 苹果官方对App Transport Security Technote的解释如下: 翻译成中文的意思就是说:iOS9.0SDK在编译的时候,默认所有从NSU ...
- java跳转QQ支付宝_iApp跳转到QQ转账和微信支付界面,以及跳转个人QQ或者支付宝的AA支付...
把下面的代码放入控件的点击事件中即可 不过要提醒大家记得更换成自己的支付连接哦! QQ转账 s qqpay="mqqapi://forward/url?url_prefix=aHR0cHM6 ...
- uni-app跨端开发H5、微信小程序、支付宝小程序遇到的坑
文章目录 微信支付宝小程序通用功能 1.checkbox样式 2.分享功能 支付宝小程序参数 微信小程序参数 其他兼容问题 H5 微信小程序 支付宝小程序 持续更新中... 微信支付宝小程序通用功能 ...
- 一个Github项目搞定微信、QQ、支付宝等第三方登录
今日推荐 推荐 7 个牛哄哄 Spring Cloud 实战项目 推荐一个非常火爆的电商开源项目! 推荐两个项目! 第三方登录是目前非常常用的登录方式,引入第三方登录的方式可以大大的降低开发的成本,同 ...
- android 11微信,QQ,支付宝无法调用的问题
android 11系统升级后,检测手机是否存在微信,支付宝,QQ等三方应用 ,需要在项目的 AndroidManifest.xml 中添加以下代码,否则项目永远检测不出三方应用 <!-- An ...
- 微信、QQ、支付宝运动步数自定义小工具
前言 冬天了,外面寒风刺骨,给不少朋友带来很多困扰 天冷.风大.下雪都不想出门,又想给蚂蚁森林浇水.捐步数怎么办~ 今天再次分享给你们一个可以在恶劣天气下偷偷懒的小工具,可以自由定义自己V.Q.ZFB ...
- Android探索之旅(第二十九篇)QRCode终极秘术之三码合一(微信,QQ,支付宝)
然后就是傻瓜式操作 如果你感觉生产的二维码不够漂亮,你可以访问以下网址进行美化 官网地址
- 安卓项目不能调起微信,qq,支付宝
在AndroidManifest.xml文件里, manifest标签里面加入如下标签(可供访问的第三方app的包名) <manifest> <queries><pack ...
最新文章
- PWA项目实战分享(听书APP)
- java怎么写隐藏bug_同事牛逼啊,写了个隐藏 bug,我排查了 3 天才解决问题!
- String字符串位置移动
- JavaScript学习(八)
- asterisk源码目录结构
- 辽师大计算机科学与技术专业怎么样,性价比很高的大学,辽师大的优势专业分析!家长请收藏...
- sublime c 语言 编译环境搭建,详解sublime搭建C/C++编译环境
- Java实用面试题及参考答案分享
- HDU - 3026 Chinese Chess(二分图的必经边)
- 复制linux内核,linux内核写时复制机制源代码解读
- 阿里开源分布式事务seata带你入门
- NetCore使用Jwtbearer给WebAPI添加访问控制
- C语言程序设计与有限元,C语言与有限元程序设计.pdf
- Java案例:汉诺塔问题
- linux安装配置java,Linux 安装配置 java 环境
- 奥特曼在银行里下象棋的梗
- 从王者荣耀看设计模式(五.组合模式)
- HDU 6599 I Love Palindrome String (回文树+hash)
- iOS开发之UIAlertController的使用
- 学习 Bootstrap 5 之 Forms