一.vue微信支付

微信支付又分为微信内支付和微信外支付流程如下

1.在订单组件中选择支付方式之后在支付页面先去判断是否是在微信内

//判断是在微信内is_weixn(){var ua = window.navigator.userAgent.toLowerCase();if (ua.match(/MicroMessenger/i) == 'micromessenger'){return true;} else {return false;}},

2.触发立即支付方法,根据微信内外的不同请求后端不同的接口,如果是微信外支付非常简单了~

3.【微信外支付】下面先看微信外支付,官方文档也写的很清楚,后端返回一个url地址,前端的工作就是拿到这个url地址进行跳转就可以了,看一下2-3步代码:

 handelPay() {if(this.wechatpayType == 'wxpay'){// console.log("微信内支付")let data={amount:this.number,}this.$http.insideWeChatPay(data).then( res => {if(res.data.code === 200){this.weChatParameter=res.data.data// console.log(this.weChatParameter,"微信内支付需要参数")this.weixinPay()}else{Toast({message: res.data.msg,position: 'middle',duration: 1000});}});} else if(this.wechatpayType == 'wxpay_php'){// console.log("微信外支付")let data={amount:this.number,}this.$http.outsideWeChatPay(data).then( res => {if(res.data.code === 200){let url=res.data.datawindow.location.replace(url)   //这里是后端返回的URL直接进行跳转即可完成微信外支付}else{Toast({message: res.data.msg,position: 'middle',duration: 1000});}});}},

4.在调起支付的页面监听从其他页面返回的事件,进行一些刷新业务逻辑的实现即可,至此微信外支付已经完成

document.addEventListener("返回的事件", function() {//需要的操作
});

5.【微信内支付】微信内支付比起微信外支付稍微复杂一点,但是也不难,(3步骤代码里面已经请求支付方式接口拿到了微信内支付所需要的参数)根据官方API
微信内置js对象 WeixinJSBridge,进行开发,至此微信浏览器内支付已经完成

//解决微信内置对象报错weixinPay(data){var vm= this;if (typeof WeixinJSBridge == "undefined"){if( document.addEventListener ){document.addEventListener('WeixinJSBridgeReady', vm.onBridgeReady(data), false);}else if (document.attachEvent){document.attachEvent('WeixinJSBridgeReady', vm.onBridgeReady(data));document.attachEvent('onWeixinJSBridgeReady',vm.onBridgeReady(data));}}else{vm.onBridgeReady();}},//微信内置浏览器类,weChatParameter对象中的参数是3.步骤代码中从后端获取的数据onBridgeReady(){var  vm = this;var timestamp=Math.round(vm.weChatParameter.timeStamp).toString();WeixinJSBridge.invoke('getBrandWCPayRequest',{debug:true,"appId":vm.weChatParameter.appId,     //公众号名称,由商户传入"timeStamp":timestamp, //时间戳,自1970年以来的秒数"nonceStr":vm.weChatParameter.nonceStr, //随机串"package":vm.weChatParameter.package,"signType":vm.weChatParameter.signType, //微信签名方式:"paySign":vm.weChatParameter.paySign, //微信签名jsApiList: ['chooseWXPay']},function(res){// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。if(res.err_msg == "get_brand_wcpay_request:ok" ){Toast({message: '支付成功',position: 'middle',duration: 3000});vm.number=nullvm.$router.go(-1)//window.location.href = vm.BASE_URL + 'index.html#/depositResult'}else{Toast({message: '支付失败',position: 'middle',duration: 3000});}});},

6.微信内部浏览器支付也可以封装一下,在全局都可以直接调用:

//微信浏览器支付
function wxpay(params,callback){if (typeof WeixinJSBridge == "undefined"){if( document.addEventListener ){document.addEventListener('WeixinJSBridgeReady', onBridgeReady(params,callback), false);}else if (document.attachEvent){document.attachEvent('WeixinJSBridgeReady', onBridgeReady(params,callback)); document.attachEvent('onWeixinJSBridgeReady', onBridgeReady(params,callback));}}else{onBridgeReady(params,callback);}
}function onBridgeReady(params,callback){var that = thisWeixinJSBridge.invoke('getBrandWCPayRequest', {"appId":params.appId,          "timeStamp":params.timeStamp,         "nonceStr":params.nonceStr, "package":params.package,     "signType":params.signType, "paySign":params.paySign },function(res){  callback(res)}); }

7.组件中调用微信支付:

this.commonUtils.wxpay(res.data.data,function(payResult){if(payResult.err_msg == "get_brand_wcpay_request:ok" ){//执行}
})

二.vue支付宝支付流程

其实支付宝支付也有H5支付和支付宝浏览器支付,这里只做H5支付,

1.支付宝中的H5支付和PC端的一样,主要是后端的工作量,后端完成订单的生成之后返给前端的是form表单,前端只需要负责做页面的跳转即可:

//立即支付按钮onSubmit() {if (this.payWay == 1) {//支付宝支付this.$router.push({path: '/aliPay', query: {orderId: this.orderId}});} else if (this.payWay == 2) {//微信支付,这里跳转到本文的微信支付模块的3.步骤handelPay方法}},

2.选择支付宝方式之后进入支付宝承载页面:

<template><div v-html="html"></div>
</template>
<script>export default {data(){return{html:''}},methods:{fetchVideoPay(){let param={orderId: this.$route.query.orderId};this.$api.orderpage.videoAliPay(param).then( res => {this.html = res.data;this.$nextTick(() => {document.forms[0].submit()   //渲染支付宝支付页面})})}},mounted(){this.fetchVideoPay()}}
</script>

当然不想写承载页的还有其他方法调起支付,具体逻辑具体分析,根据不同的业务类型去变通比如

const div = document.createElement('div');
div.innerHTML = (res.data);  //res.data是返回的表单
document.body.appendChild(div);
document.forms.alipaysubmit.submit();

3.进入到支付宝支付页进行支付

App中的微信支付和支付宝支付如何实现相关推荐

  1. android个人支付功能,个人app支付接入(三分钟搞定个人微信支付,支付宝支付问题)---贝贝支付...

    前言 想必很多人个人开发者和我有同样的感触,想要在自己开发的app中接入微信支付和支付宝支付,仅仅是去申请支付接口就把我们挡在了门外,微信和支付宝都只对接企业的,那不是想逼死我们个人开发者吗?一开始使 ...

  2. Vue app安卓端移动端实现微信支付和支付宝支付

    当前项目借助调用安卓和ios方法跳转第三方支付平台实现微信支付和支付宝支付  涉及到的安卓方法: window.AndroidFunction.wxpay('传递的参数') // 点击确认支付hand ...

  3. mui支付php后台demo,Dcloud中mui 微信支付和支付宝支付接口完美实现付款代码(PHPdemo)...

    演示下载你可以参考这里:http://www.erdangjiade.com/php/2750.html 演示下载你可以参考这里:http://www.erdangjiade.com/php/2475 ...

  4. 移动app部分机型无法唤起h5支付宝支付_案例分析:H5支付交互体验设计

    随着互联网技术和手机软硬件的高速发展,手机的使用场景已经融入到日常生活的点滴中.购物用淘宝下单,饿了在美团点外卖,出行滴滴一下--这些关联衣食住行的应用,都离不开一个核心环节:线上支付. 手机支付通常 ...

  5. 腾腾流氓,云云更流氓(问微信怎样接入支付宝支付),手贱的赶紧点,你会感谢我的...

    草原上的两匹马! 打从当年微信开始布局公众号之初时,估计就已经想到了与支付宝正面冲突的场面,所以微信先来个瞒天过海,在春晚搞了个微信红包,那叫一个火呀,此时的云云隐隐感觉到些许不安. 早期的微信开发者 ...

  6. 微信支付及支付宝支付开发指南

    从开始学习android开始到现在还没搞过三方支付,感觉挺遗憾的.看到最近有几篇关于微信支付和支付宝支付的文章,稍微进行一下整合,供大家参考. ---------------------------- ...

  7. 微信支付和支付宝支付整合(含设计模式1)

    微信支付和支付宝支付整合(含设计模式1) 1.说明: 设计模式:单例+策略模式+抽象 在开发中经常对接微信支付和支付宝支付,相对来说,阿里的文档比微信的接口文档清晰一点,这里用的第三方库(com.gi ...

  8. iOS 微信支付和支付宝支付

    1.微信支付 1)准备 通过cocoapods安装: #微信支付 pod 'WechatOpenSDK', '~> 1.8.1' 在微信开放平台注册应用,获取APPKey 在plist文件中添加 ...

  9. vue玩转移动端H5微信支付和支付宝支付

    业务场景介绍: H5移动端支持微信支付 [ 微信支付分为微信内支付(JSAPI支付官方API)和微信外支付(H5支付官方API)] && 支付宝支付 [手机网站支付转 APP 支付 官 ...

  10. java实现微信支付与支付宝支付接口

    因为公司要求需要写支付宝支付与微信支付现在写完了,总结一下: 支付宝支付: 支付宝支付比较简单首先我说一下支付宝支付与微信支付大概的流程,就拿支付宝支付来说(微信同理) 首先去蚂蚁金服注册一下App ...

最新文章

  1. GHOST还原教程详细
  2. lodop+art-template实现web端漂亮的小票样式打印
  3. 大数据系列文章-Hadoop的HDFS读写流程(二)
  4. 2009.5.23软考_信息处理技术员 上午试题 答案 讨论
  5. summerDao-比mybatis更强大无需映射配置的dao工具
  6. hadoop伪分布式搭建 java_hadoop2.2.0伪分布式搭建
  7. 在你们看来,信息网络的定级如何才能更好的发展?或者说有什么影响因素使得定级工作不好开展?
  8. centos 正确 安装 jdk
  9. 海外同行首次大规模声援996.ICU,微软和GitHub员工签署联名信,一夜4700星
  10. Windows XP系统文件一一诠释(1)[最新整理](转BY wang6610----BBS.WUYOU.COM)
  11. 华为摄像头搜索软件_ZOOM会议软件简要操作说明-安卓手机版
  12. 高频功率放大器的设计实现
  13. 安装Windows+Ubuntu双系统
  14. springboot+nodejs+vue+Elementui高校课外学科竞赛管理系统
  15. Arduino基本知识
  16. 分布式系统下的幂等性问题如何解决?
  17. 日期加减天数计算,时间戳日期相互转换
  18. 2021年宁波市建筑物轮廓及高度矢量数据
  19. Spring-setter注入和构造器注入
  20. EBA 启动问题解决方法

热门文章

  1. OpenSSH: 通过 LDAP 做认证
  2. 造成503 service unavailable常见的原因以及解决方法
  3. Python制做动态图
  4. ffmpeg视频剪切与拼接
  5. C# 里弹出“确定”“取消”对话框
  6. 查找并下载开放的音乐数据(.mp3)
  7. REW声学测试(四):REW的测试原理
  8. 滑动相关的原理以及用滤波器实现滑动相关(匹配滤波器捕获DMF)
  9. Java毕业设计_集美大学诚毅学院校友录系统设计与开发
  10. 计算方法 7.数值积分计算方法