微信支付 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 相关文章推荐
Javascript模块模式分析
May 16 Javascript
window.location和document.location的区别分析
Dec 23 Javascript
Js 获取HTML DOM节点元素的方法小结
Apr 24 Javascript
基于jquery DOM写的类似微博发布的效果
Oct 20 Javascript
JS获取农历日期具体实例
Nov 14 Javascript
判断访客终端类型集锦
Jun 05 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
May 03 Javascript
微信小程序 加载 app-service.js 错误解决方法
Oct 12 Javascript
JavaScript基础——使用Canvas绘图
Nov 02 Javascript
5分钟打造简易高效的webpack常用配置
Jul 04 Javascript
解决vue+webpack打包路径的问题
Mar 06 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 Javascript
判断输入的字符串是否是日期格式的简单方法
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
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
Thinkphp中的volist标签用法简介
2014/06/18 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
PHP常用函数之格式化时间操作示例
2019/10/21 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
JavaScript函数详解
2014/11/17 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
Python使用filetype精确判断文件类型
2017/07/02 Python
Django实现快速分页的方法实例
2017/10/22 Python
Python编程把二叉树打印成多行代码
2018/01/04 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
医院护士求职自荐信格式
2013/09/21 职场文书
银行简历自我评价
2014/02/11 职场文书
人事科岗位职责范本
2014/03/02 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
机械专业技术员求职信
2014/06/14 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
慈善募捐倡议书
2015/04/27 职场文书
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
2021/03/31 HTML / CSS
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js