微信支付

微信文档中的例子如下。

function onBridgeReady(){

WeixinJSBridge.invoke(

'getBrandWCPayRequest', {

"appId":"wx2421b1c4370ec43b", //公众号名称,由商户传入

"timeStamp":"1395712654", //时间戳,自1970年以来的秒数

"nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串

"package":"prepay_id=u802345jgfjsdfgsdg888",

"signType":"MD5", //微信签名方式:

"paySign":"70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名

},

function(res){

if(res.err_msg == "get_brand_wcpay_request:ok" ){

// 使用以上方式判断前端返回,微信团队郑重提示:

//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。

}

});

}

// 下面是兼容不同浏览器绑定事件的方法

if (typeof WeixinJSBridge == "undefined"){

if( document.addEventListener ){

document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);

}else if (document.attachEvent){

document.attachEvent('WeixinJSBridgeReady', onBridgeReady);

document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);

}

}else{

onBridgeReady();

}

我们主要是从后台中获取数据传入onBridgeReady这个方法中。

所以第一步是获取数据,第二步是把获取到的数据传入到onBridgeReady方法

第一步:发送请求获取后台数据

1.在对应的api文件下封装请求(get)

export function wechatPay(type, vid, token, point, discount) {

let discount_type = discount || null

return axios.get(`${Host}/api/save_mobile`,{

params: {

pay_type: type,

video_id: vid,

token,

point,

discount_type

}

})

}

2.在对应的组件调用请求

发送支付请求

import { wechatPay } from '../../../api/pay.js'

export default {

name: 'payfooter',

computed: {

info() {

return this.$store.state.user.info

},

// 获取选择支付的方式

paytype() {

return this.$store.state.pay.paytype

}

},

methods: {

_wechatPay(type, vid, token, point) {

wechatPay(type, vid, token, point).then(res => {

console.log(res) // 这个res就是后台返回的数据

})

}

}

}

3.后台返回的json格式数据如下(这不是console出来,方便显示我就直接把json数据复制过来)

{

"code": 0,

"data": {

"appId": "wx5beac*******7c40c",

"nonceStr": "8491k3******Rs5",

"package": "prepay_id=wx07**************2653",

"paySign": "CDE21B*************40C1A",

"signType": "MD5",

"timeStamp": "15******1"

},

"msg": null

}

第二步:把数据传给onBridgeReady函数

所以真正需要获取的内容是 res.data.data,然后再把res.data.data的值传给onBridgeReady函数

4.重新整理一下代码就是

methods: {

_wechatPay(type, vid, token, point) {

wechatPay(type, vid, token, point).then(res => {

res = res.data

if(res.code === 0) {

this.onBridgeReady(res.data) // 这样就把res.data传给onBridgeReady函数

}

})

},

// 微信支付api相关配置文档

onBridgeReady(data) {

if (typeof WeixinJSBridge === 'undefined') {

this.$toast({ message: '请使用微信内置浏览器进行支付' })

} else {

WeixinJSBridge.invoke(

'getBrandWCPayRequest',

{

appId: data.appId, // 公众号名称,由商户传入

timeStamp: data.timeStamp, // 时间戳,自1970年以来的秒数

nonceStr: data.nonceStr, // 随机串

package: data.package,

signType: data.signType, // 微信签名方式:

paySign: data.paySign // 微信签名

},

res => {

if (res.err_msg === 'get_brand_wcpay_request:ok') {

this.$toast({ message: '支付成功' })

this.$router.push({path: '/videoplayer', query: { video_id: this.$route.query.video_id }}) // 支付成功之后跳转的路由

} else {

this.$toast({ message: '支付失败' })

}

}

)

}

},

}

支付宝支付

与微信支付不同的是,支付宝支付后台是返回form格式的数据,如下

那么在处理后台数据的时候用下面的方法(参考网络大神)

_wechatPay(type, vid, token, point) {

wechatPay(type, vid, token, point).then(res => {

const form = res.data

const div = document.createElement('div')

div.id = 'alipay'

div.innerHTML = form

document.body.appendChild(div)

document.querySelector('#alipay').children[0].submit() // 执行后会唤起支付宝

})

}

python 调用支付宝微信接口_前端在h5页面调起微信支付接口和支付宝接口(日常笔记)...相关推荐

  1. 前端如何在H5页面调起微信支付

    在微信服务号开发的时候经常会遇到微信支付的功能实现,通过实际经验自己总结了一下,前端在H5页面调起微信支付有两种办法,一是利用内置对象,二是通过引用微信的js sdk,亲测都能支付成功,从写法上来看用 ...

  2. Android H5页面调起微信和支付宝付款

    一.前提条件:后端已经生成了支付链接 微信是支持H5在非微信内核的浏览器调起支付的,只是流程很麻烦,需要企业账号申请才行,并且周期较长.微信官方开通说明 申请入口:登录商户平台–>产品中心–&g ...

  3. js获取微信号_前端js可以直接获取到微信用户基本信息吗

    网页授权获取用户基本信息 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 网页授权的两种scope的区别说明 1.以snsapi_base ...

  4. Android webview加载H5页面调起微信支付

    场景 一个H5的页面,需要在app内用webview展示,然后涉及到支付,要求能够调用微信支付来付款,页面没有问题,但是写完出现了一些问题. 问题 页面不显示,展示空白 需要设置: webSettin ...

  5. 微信小程序web-view 外部引用h5页面调用摄像头录制视频 配有提示音

    微信小程序web-view 外部引用h5页面调用摄像头录制视频 配有提示音 1.目前的需求是什么 2.都踩了那些坑 1.小程序 2.h5语音提示 3.语音合成声音录制不进去,ios有时候是麦克风,有时 ...

  6. 安卓非微信内置浏览器中的网页调起微信支付的方案研究

    问题来源 之前在app中集成过微信支付,此种微信支付方式为app支付,即在我们自己的应用中嵌入微信支付SDK,由Native代码调起微信支付. 后来由于业务需要在我们app的WebView中打开第三方 ...

  7. 通过微信公众号跳转H5页面领取现金红包

    通过微信公众号跳转H5页面领取现金红包 项目目的 通过公司微信公众号领取现金奖励 面向对象 公司内部员工 产品逻辑: 1.在微信公众号底部栏加一项"领取奖励",点击"领取 ...

  8. 支付宝小程序跳转第三方H5页面

    支付宝小程序跳转第三方H5页面 基础API跳转 web-view my.ap.openURL web-view 和 my.ap.openURL 两者比较 my.ap.navigateToAlipayP ...

  9. h5页面返回到微信首页

    h5页面返回到微信首页等同于关闭当前打开页面 使用微信内置WeixinJSBridge.call直接关闭 setTimeout(function() {//这个可以关闭安卓系统的手机document. ...

最新文章

  1. Tips——IndexSearcher自动更新
  2. 今日 Paper | 多人姿势估计;对话框语义分析;无监督语义分析;自然语言处理工具包等
  3. 华尔街风暴的深层原因
  4. Spring boot集成spring-boot-starter-data-jpa环境搭建
  5. php四种基础算法:冒泡,选择,插入和快速排序法
  6. 2018蓝桥杯模拟赛·青出于蓝而胜于蓝 DFS序+树状数组
  7. java请实现程序输出以下星塔||输出菱形
  8. python万年历源代码_python万年历实现代码 含运行结果
  9. 瑞幸咖啡公布对董事长兼CEO郭谨一调查结果:未发现不当行为
  10. java 动软_动软代码生成器下载_2017动软代码生成器下载及相关推荐 - noYes软件大全...
  11. eclipsevue代码怎么运行_打了多年的单片机调试断点到底应该怎么设置? | 颠覆认知...
  12. 程序员为什么焦虑于编程语言和框架?
  13. 极简代码(三)—— 欧式距离
  14. Linux 下编译安装 PHP 5.6
  15. Spark时间格式转换
  16. 【比特率和波特率】bit rate VS baud rate
  17. 关于安卓打包脚本aab
  18. 雪の华 雪之华——不可不玩的好游戏(繁体中文版,附攻略、下载、歌词)...
  19. 网络攻防篇 使用批处理文件进行来恶作剧-01
  20. Excel如何筛选数据重复项?

热门文章

  1. 五天带你学完《计算机网络》·第二天·数据链路层
  2. Python3的深拷贝和浅拷贝
  3. dubbo-provider-deploy
  4. phaiapi数据库重写类
  5. 让 sphinx 支持中文、日文和韩文
  6. 学习参数传递及const成员变量初始化
  7. rebar Erlang构建工具(转)
  8. 几个常用的Linux监控脚本
  9. 爱情第五课,终极选择题
  10. asp.net ajax 弹不出alert对话框的解决办法