微信内h5调用支付
在做公众号商城的时候,需要用到调用微信支付,这是微信官方文档教程
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6,详细描述了怎么调起微信支付,以下代码是我的实际业务调用微信支付完整流程
到订单页面点击提交订单按钮,此时点击事件先向后台发个请求,公司的后端人员通过代码去对接微信的系统,生成一个预订单,然后返回一个prepay_id,具体可以看官方文档里边的业务流程图。在我们刚才向接口发送请求以后,后端会把信息返回给我们,包括appId、timeStamp、nonceStr、package、signType这个值。这些值都是我们调起微信支付必须的。
代码如下:
this.getFetch("公司后端提供的接口", data).then(res => {
if (res.data.code * 1 === 1) {
function onBridgeReady() {
WeixinJSBridge.invoke(
"getBrandWCPayRequest", {
appId: res.data.data.jsApiId, //公众号名称,由商户传入
timeStamp:res.data.data.timestamp, //时间戳,自1970年以来的秒数
nonceStr: res.data.data.nonceStr, //随机串
package: res.data.data.package,
signType: res.data.data.signType, //微信签名方式:
paySign: res.data.data.paySign //微信签名
},
wxResponse => {
if (wxResponse.err_msg == "get_brand_wcpay_request:ok") {
window.location.href = window.location.origin + "/couponPaySuccess?ordernum=" + res.data.data.id;
}
if (wxResponse.err_msg == "get_brand_wcpay_request:fail") {
_this.$toast("支付失败");
}
if (wxResponse.err_msg == "get_brand_wcpay_request:cancel") {
_this.$toast("支付取消");
}
}
);
}
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();
}
} else if (res.data.code * 1 === -1) {
this.autoLogin();
} else {
this.$toast(res.data.msg);
this.wxBtn=true;
}
});
微信内h5调用支付的更多相关文章
- Java微信公众平台开发之公众号支付(微信内H5调起支付)
官方文档点击查看准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败)借鉴了很多大神的文章,在此先谢过了 整个支付流程,看懂就很好写了 一.设置支付目录 在微信公众平台设置您的公 ...
- vue 微信内H5调起支付
在微信内H5调起微信支付,主要依赖于一个微信的内置对象WeixinJSBridge,这个对象在其他浏览器中无效. 主要代码: import axios from 'axios'; export def ...
- 微信接口出现“调用支付jsapi缺少参数appid”
微信接口出现“调用支付jsapi缺少参数appid” 注意:@Html.Raw(ViewBag.wxJsApiParam),//json串ViewBag.wxJsApiParam是一个在后台拼的一个j ...
- 微信公众号内H5调用微信支付国内服务商模式
最近在折微信公众号内H5用JSAPI调用微信支付,境内服务商版支付,微信支付给出的官方文档以及SDK不够详细,导至我们走了一些弯路,把他分享出来,我这边主要是用PHP开发,所以未加说的话示例都是PHP ...
- 微信支付-公众号支付H5调用支付详解
微信公众号支付 最近项目需要微信支付,然后看了下微信公众号支付,,虽然不难,但是细节还是需要注意的,用了大半天时间写了个demo,并且完整的测试了一下支付流程,下面分享一下微信公众号支付的经验. 一. ...
- 微信内 H5 页面自定义分享
起源: 最近公司在做一个活动的h5页面,在微信内打开时需要进行微信授权,然后后端会重定向到这个页面并且携带了一些参数(openid等).问题是点击微信的原生分享时,会把携带的这些参数一起分享出去,等于 ...
- java微信小程序调用支付接口(转)
简介:微信小程序支付这里的坑还是有的,所以提醒各位在编写的一定要注意!!! 1.首先呢,你需要准备openid,appid,还有申请微信支付后要设置一个32位的密钥,需要先生成一个sign,得到pre ...
- java微信小程序调用支付接口
简介:微信小程序支付这里的坑还是有的,所以提醒各位在编写的一定要注意!!! 1.首先呢,你需要准备openid,appid,还有申请微信支付后要设置一个32位的密钥,需要先生成一个sign,得到pre ...
- 【weixi】微信支付---微信公众号JSAPI支付
一.JSAPI支付 JSAPI支付是用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付.应用场景有: ◆ 用户在微信公众账号内进入商家公众号,打 ...
- 【第二十篇】C#微信H5支付 非微信内浏览器H5支付 浏览器微信支付
微信开发者文档 微信H5支付官方文档 请阅读清楚 最起码把所有参数看一遍 这个地方也可以看看 微信案例 http://wxpay.wxutil.com/mch/pay/h5.v2.php,请在微 ...
随机推荐
- 靶机练习 - 温故知新 - Toppo(sudo 提权)
重新做了一下以前做过的第一个靶机(https://www.cnblogs.com/sallyzhang/p/12792042.html),这个靶机主要是练习sudo提权,当时不会也没理解. 开启靶机, ...
- Maven初学习
Maven初学习 摘要:本篇笔记记录了我在初学Maven是认为比较重要的一些知识点. 目录 Maven初学习 1.Maven简介 1.1.项目构建 Ant Maven Gradle 1.2.总结 2. ...
- 题解P3847 [TJOI2007]调整队形
简要题意 给出一个长度为 \(n\) 的序列 \(A\),你需要执行下面的操作,将这个序列变成回文序列: 在序列左右侧或中间插入一个元素,元素数值任意. 删除一个元素. 更改一个元素的值. \(1 \ ...
- linux 基础(2) 文件权限及其修改
文件的权限属性 在 linux 中,每个文件都有唯一的"所属者"(user)和"所属群组"(group).owner 和 group 都对文件有特殊的权限 输入 ...
- Cert Manager 申请SSL证书流程及相关概念-三
中英文对照表 英文 英文 - K8S CRD 中文 备注 certificates Certificate 证书 certificates.cert-manager.io/v1 certificate ...
- STL容器vector
一.什么是Vector 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container).跟任意其它类型容器一样,它能够存放各种类型的对象.可以简单的认为, ...
- mysql 列约束
mysql可以对插入的数据进行特定得验证,只有满足条件才可以插入到数据表中,否则认为是非法插入: 例如:人性别只可以是男.女.年龄只能是0-100. ①主键约束查重-PRIMARY KEY,1表一个: ...
- HashMap存储自定义类型键值-Linked Hash集合
HashMap存储自定义类型键值 练习∶每位学生(姓名,年龄)都有自己的家庭住址.那么,既然有对应关系,则将学生对象和家庭住址存储到map集合中.学生作为键,家庭住址作为值.注意,学生姓名相同并且年龄 ...
- Python装饰器实例讲解(二)
Python装饰器实例讲解(二) Python装饰器实例讲解(一) 你最好去看下第一篇,虽然也不是紧密的链接在一起 参考B站码农高天的视频,大家喜欢看视频可以跳转忽略本文:https://www.bi ...
- 计算机网络14 Internet网络层主要功能 IP协议 路由协议 ICMP协议
1 主机.路由器网络层主要功能 2 IP数据报 2.1 图示 2.2 字段详细介绍 1)版本号 占4位:IP协议的版本号.4表示IPv4,6表示IPv6. 2)首部长度 占4位:表示IP分组首部长度. ...