微信支付 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实现缓冲运动效果的方法
Apr 10 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
May 10 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
Sep 19 Javascript
javascript表达式和运算符详解
Feb 07 Javascript
ES6新特性四:变量的解构赋值实例
Apr 21 Javascript
Three.js的使用及绘制基础3D图形详解
Apr 27 Javascript
ionic实现底部分享功能
May 11 Javascript
redux中间件之redux-thunk的具体使用
Apr 17 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
Feb 27 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 Javascript
在 Vue 中编写 SVG 图标组件的方法
Feb 24 Javascript
原生JS封装拖动验证滑块的实现代码示例
Jun 01 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 可阅读随机字符串代码
2010/05/26 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
flash javascript之间的通讯方法小结
2008/12/20 Javascript
一个选择最快的服务器转向代码
2009/04/27 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
Python 忽略warning的输出方法
2018/10/18 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
报社实习生自荐信
2014/01/24 职场文书
工地安全检查制度
2014/02/04 职场文书
高校教师自荐信范文
2014/03/13 职场文书
财务情况说明书范文
2014/05/06 职场文书
职工小家建设活动方案
2014/08/25 职场文书
交通事故和解协议书
2014/09/25 职场文书
环卫处个人工作总结
2015/03/04 职场文书
工程技术员岗位职责
2015/04/11 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
分析Java中Map的遍历性能问题
2021/06/26 Java/Android