python 调用支付宝微信接口_前端在h5页面调起微信支付接口和支付宝接口(日常笔记)...
微信支付
微信文档中的例子如下。
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页面调起微信支付接口和支付宝接口(日常笔记)...相关推荐
- 前端如何在H5页面调起微信支付
在微信服务号开发的时候经常会遇到微信支付的功能实现,通过实际经验自己总结了一下,前端在H5页面调起微信支付有两种办法,一是利用内置对象,二是通过引用微信的js sdk,亲测都能支付成功,从写法上来看用 ...
- Android H5页面调起微信和支付宝付款
一.前提条件:后端已经生成了支付链接 微信是支持H5在非微信内核的浏览器调起支付的,只是流程很麻烦,需要企业账号申请才行,并且周期较长.微信官方开通说明 申请入口:登录商户平台–>产品中心–&g ...
- js获取微信号_前端js可以直接获取到微信用户基本信息吗
网页授权获取用户基本信息 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 网页授权的两种scope的区别说明 1.以snsapi_base ...
- Android webview加载H5页面调起微信支付
场景 一个H5的页面,需要在app内用webview展示,然后涉及到支付,要求能够调用微信支付来付款,页面没有问题,但是写完出现了一些问题. 问题 页面不显示,展示空白 需要设置: webSettin ...
- 微信小程序web-view 外部引用h5页面调用摄像头录制视频 配有提示音
微信小程序web-view 外部引用h5页面调用摄像头录制视频 配有提示音 1.目前的需求是什么 2.都踩了那些坑 1.小程序 2.h5语音提示 3.语音合成声音录制不进去,ios有时候是麦克风,有时 ...
- 安卓非微信内置浏览器中的网页调起微信支付的方案研究
问题来源 之前在app中集成过微信支付,此种微信支付方式为app支付,即在我们自己的应用中嵌入微信支付SDK,由Native代码调起微信支付. 后来由于业务需要在我们app的WebView中打开第三方 ...
- 通过微信公众号跳转H5页面领取现金红包
通过微信公众号跳转H5页面领取现金红包 项目目的 通过公司微信公众号领取现金奖励 面向对象 公司内部员工 产品逻辑: 1.在微信公众号底部栏加一项"领取奖励",点击"领取 ...
- 支付宝小程序跳转第三方H5页面
支付宝小程序跳转第三方H5页面 基础API跳转 web-view my.ap.openURL web-view 和 my.ap.openURL 两者比较 my.ap.navigateToAlipayP ...
- h5页面返回到微信首页
h5页面返回到微信首页等同于关闭当前打开页面 使用微信内置WeixinJSBridge.call直接关闭 setTimeout(function() {//这个可以关闭安卓系统的手机document. ...
最新文章
- Tips——IndexSearcher自动更新
- 今日 Paper | 多人姿势估计;对话框语义分析;无监督语义分析;自然语言处理工具包等
- 华尔街风暴的深层原因
- Spring boot集成spring-boot-starter-data-jpa环境搭建
- php四种基础算法:冒泡,选择,插入和快速排序法
- 2018蓝桥杯模拟赛·青出于蓝而胜于蓝 DFS序+树状数组
- java请实现程序输出以下星塔||输出菱形
- python万年历源代码_python万年历实现代码 含运行结果
- 瑞幸咖啡公布对董事长兼CEO郭谨一调查结果:未发现不当行为
- java 动软_动软代码生成器下载_2017动软代码生成器下载及相关推荐 - noYes软件大全...
- eclipsevue代码怎么运行_打了多年的单片机调试断点到底应该怎么设置? | 颠覆认知...
- 程序员为什么焦虑于编程语言和框架?
- 极简代码(三)—— 欧式距离
- Linux 下编译安装 PHP 5.6
- Spark时间格式转换
- 【比特率和波特率】bit rate VS baud rate
- 关于安卓打包脚本aab
- 雪の华 雪之华——不可不玩的好游戏(繁体中文版,附攻略、下载、歌词)...
- 网络攻防篇 使用批处理文件进行来恶作剧-01
- Excel如何筛选数据重复项?