微信支付 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 相关文章推荐
Extjs Ajax 乱码问题解决方案
Apr 15 Javascript
window.dialogArguments 使用说明
Apr 11 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
Dec 08 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
Sep 16 Javascript
JS在textarea光标处插入文本的小例子
Mar 22 Javascript
针对初学者的jQuery入门指南
Aug 15 Javascript
js实现文件上传表单域美化特效
Nov 02 Javascript
JS实现中国公民身份证号码有效性验证
Feb 20 Javascript
JavaScript之生成器_动力节点Java学院整理
Jun 30 Javascript
Vue.js数据绑定之data属性
Jul 07 Javascript
vue 1.x 交互实现仿百度下拉列表示例
Oct 21 Javascript
vscode 开发Vue项目的方法步骤
Nov 25 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实现利用phpexcel导出数据
2013/08/24 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
php格式文件打开的四种方法
2018/02/24 PHP
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
Python验证文件是否可读写代码分享
2017/12/11 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
python样条插值的实现代码
2018/12/17 Python
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
请解释一下webService? 如何用.net实现webService
2014/06/09 面试题
财务管理专业应届毕业生求职信
2013/09/22 职场文书
幼儿园实习生辞职信
2014/01/20 职场文书
迟到检讨书大全
2014/01/25 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
公司市场部岗位职责
2015/04/15 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP