微信支付 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 相关文章推荐
js控制当再次点击按钮时的间隔时间
Jun 03 Javascript
在JS方法中返回多个值的方法汇总
May 20 Javascript
jQuery限制图片大小的方法
May 25 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
Dec 14 Javascript
简单的渐变轮播插件
Jan 12 Javascript
bootstrap模态框示例代码分享
May 17 Javascript
jQuery日期范围选择器附源码下载
May 23 jQuery
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
Sep 07 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
Dec 20 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
Sep 20 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
Dec 24 Javascript
浅谈js中的attributes和Attribute的用法与区别
Jul 16 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.ini中文版(2)
2006/10/09 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
php实现小程序支付完整版
2018/10/09 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
python使用xmlrpc实例讲解
2013/12/17 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Django保护敏感信息的方法示例
2019/05/09 Python
python操作kafka实践的示例代码
2019/06/19 Python
使用PYTHON解析Wireshark的PCAP文件方法
2019/07/23 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
python实现经纬度采样的示例代码
2020/12/10 Python
如何编写python的daemon程序
2021/01/07 Python
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
资产经营总监岗位职责范文
2013/12/01 职场文书
女方婚礼新郎答谢词
2014/01/11 职场文书
小松树教学反思
2014/02/11 职场文书
2014年村委会工作总结
2014/11/24 职场文书
万里长城导游词
2015/01/30 职场文书
新郎接新娘保证书
2015/05/08 职场文书
任命书格式模板
2015/09/22 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL