微信支付 JS API支付接口详解


Posted in Javascript onJuly 11, 2016

一、JS API支付接口(getBrandWCPayRequest)

微信JS API只能在微信内置浏览器中使用,其他浏览器调用无效。微信提供getBrandWCPayRequest接口供商户前端网页调用,调用之前微信会鉴定商户支付权限,若商户具有调起支付的权限,则将开始支付流程。这里主要介绍支付前的接口调用规则,支付状态消息通知机制请参加下文。接口需要注意:所有传入参数都是字符串类型!

getBrandWCPayRequest参数如下图所示。

参数 名称 必填 格式 说明
appId 公众号id 字符串类型 商户注册具有支付权限的公众号成功后即可获得;
timeStamp 时间戳 字符串类型,32个字节以下 商户生成,从1970年1月1日00:00:00至今的秒数,即当前的时间,且最终需要转换为字符串形式;
nonceStr 随机字符串 字符串类型,32个字节以下 商户生成的随机字符串;
package 订单详情扩展字符串 字符串类型,4096个字节以下 商户将订单信息组成该字符串,具体组成方案参见接口使用说明中package组包帮劣;由商户按照规范拼接后传入;
signType 签名方式 字符串类型,参数取值"SHA1" 按照文档中所示填入,目前仅支持SHA1;
paySign 签名 字符串类型 商户将接口列表中的参数按照指定方式?行签名,签名方式使用signType中标示的签名方式,具体签名方案参见接口使用说明中签名帮劣;由商户按照规范签名后传入;

    getBrandWCPayRequest返回值如下表所示。

返回值 说明
err_msg get_brand_wcpay_request:ok  支付成功 get_brand_wcpay_request:cancel 支付过程中用户取消 get_brand_wcpay_request:fail 支付失败

JS API的返回结果 get_brand_wcpay_request:ok 仅在用户成功完成支付时返回。由于前端交互复杂,get_brand_wcpay_request:cancel 或者 get_brand_wcpay_request:fail 可以统一处理为用户遇到错误或者主动放弃,不必细化区分。

二、JS API支付实现

下面代码是微信官方提供的JS API支付demo

<?php
include_once("WxPayHelper.php");
$commonUtil = new CommonUtil();
$wxPayHelper = new WxPayHelper();
$wxPayHelper->setParameter("bank_type", "WX");
$wxPayHelper->setParameter("body", "test");
$wxPayHelper->setParameter("partner", "1900000109");
$wxPayHelper->setParameter("out_trade_no", $commonUtil->create_noncestr());
$wxPayHelper->setParameter("total_fee", "1");
$wxPayHelper->setParameter("fee_type", "1");
$wxPayHelper->setParameter("notify_url", "htttp://www.baidu.com");
$wxPayHelper->setParameter("spbill_create_ip", "127.0.0.1");
$wxPayHelper->setParameter("input_charset", "GBK");
?>
<html>
<script language="javascript">
function callpay()
{
 WeixinJSBridge.invoke('getBrandWCPayRequest',<?php echo $wxPayHelper->create_biz_package(); ?>,function(res){
 WeixinJSBridge.log(res.err_msg);
 alert(res.err_code+res.err_desc+res.err_msg);
 });
}
</script>
<body>
<button type="button" onclick="callpay()">wx pay test</button>
</body>
</html>

将其中的微信支付参数修改成自己所申请得到的,然后将网页上传到微信支付目录下,给测试账号回复该网页地址。用户就可以实现一次JS API支付。

三、效果演示

下面是官方DEMO修改后,发起支付的页面图。

微信支付 JS API支付接口详解

确认交易:

微信支付 JS API支付接口详解

输入支付密码:

微信支付 JS API支付接口详解

交易成功:

微信支付 JS API支付接口详解

       以上就是对微信支付JS API 资料的整理,希望能帮到大家,谢谢支持!

Javascript 相关文章推荐
Google韩国首页图标动画效果
Aug 26 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
Dec 13 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
Jun 12 Javascript
浅析JavaScript 箭头函数 generator Date JSON
May 23 Javascript
深入理解JavaScript中Ajax
Aug 02 Javascript
javascript遍历json对象的key和任意js对象属性实例
Mar 09 Javascript
angular bootstrap timepicker TypeError提示怎么办
Jun 13 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
Aug 28 Javascript
使用vue的transition完成滑动过渡的示例代码
Jun 25 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
Sep 20 Javascript
详解Vue.js v-for不支持IE9的解决方法
Dec 29 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
Sep 21 jQuery
判断输入的字符串是否是日期格式的简单方法
Jul 11 #Javascript
JS判断日期格式是否合法的简单实例
Jul 11 #Javascript
深入浅析JavaScript中的scrollTop
Jul 11 #Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
Jul 11 #Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
Jul 11 #Javascript
Bootstrap3制作搜索框样式的方法
Jul 11 #Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
Jul 11 #Javascript
You might like
通过html表格发电子邮件
2006/10/09 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
js prototype和__proto__的关系是什么
2019/08/23 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
详解详解Python中writelines()方法的使用
2015/05/25 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
python常用排序算法的实现代码
2019/11/08 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
使用python处理题库表格并转化为word形式的实现
2020/04/14 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
初中政治教学反思
2014/01/17 职场文书
元宵晚会主持词
2014/03/25 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
具结保证书
2015/01/17 职场文书
针对吵架老公保证书
2015/05/08 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
SQL Server中的游标介绍
2022/05/20 SQL Server