快速对接payjq的个人微信支付接口过程解析


Posted in Javascript onAugust 15, 2019

近期在了解个人支付接口,希望能解决我在微信上支付的问题。找了很多平台对比再三,感觉 payjq 比较专业。同时支持支付宝和微信,由于本人支付宝还没开通(需要有一定流量才给开通),本文重点讲一下微信收银台模式的对接。记录一下。

收银台模式对接其实非常简单,官方有开发包可以直接使用,或者自己开发也比较简单。

一、个人通过代码实现的办法

配置商户号和通信密钥

$mchid = '**************'; // PAYJQ 商户号
 $key  = '**************'; // 通信密钥

构造订单

// 构造订单参数
 $data = [
   'mchid'    => $mchid,
   'body'     => '我是一个测试订单标题',
   'total_fee'  => 1,
   'out_trade_no' => 'payjq_jspay_demo_' . time(),
 ];

签名算法

// 获取签名
 function sign($data, $key)
 {
   array_filter($data);
   ksort($data);
   return strtoupper(md5(urldecode(http_build_query($data) . '&key=' . $key)));
 }

订单数据加签

// 添加数据签名
 $data['sign'] = sign($data, $key);

浏览器跳转

// 浏览器跳转到收银台
 $url = 'https://payjq.cn/api/cashier?' . http_build_query($data);
 header('Location: ' . $url);

所有步骤已经完成。可以正常发起支付

需要特别提醒的是,最后一步浏览器跳转的动作,须要通过浏览器发起,不能后端代码获取后再发起

二、异步通知的处理

例如我的域名是 http://www.xxx.com ,接收异步通知的url是 http://www.xxx.com/payjq/notify.php 只需在构造订单的时候,添加以下字段即可

// 构造订单参数
 $data = [
   'mchid'    => $mchid,
   'body'     => '我是一个测试订单标题',
   'total_fee'  => 1,
   'out_trade_no' => 'payjq_jspay_demo_' . time(),
   'notify_url'  => 'http://www.xxx.com/payjq/notify.php',
 ];

这样,在用户支付完成后,我的服务器即可接收到异步通知。经过测试,异步通知的到达时间一般在1秒内就收到了,感受不到延迟。只是我在前端轮询的时候可能三秒轮询一次频率比较低

payjq官网

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript new Date().valueOf()的作用与时间戳由来详解
Apr 24 Javascript
浅析jQuery中常用的元素查找方法总结
Jul 04 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
Mar 11 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
May 24 Javascript
JavaScript 实现的checkbox经典实例分享
Oct 16 Javascript
jQuery用FormData实现文件上传的方法
Nov 21 Javascript
详解JavaScript模块化开发
Dec 04 Javascript
JavaScript实现类似淘宝的购物车效果
Mar 16 Javascript
layer实现关闭弹出层刷新父界面功能详解
Nov 15 Javascript
JavaScript 跨域之POST实现方法
May 07 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
Jun 08 Javascript
在elementui中Notification组件添加点击事件实例
Nov 11 Javascript
Element-UI中关于table表格的那些骚操作(小结)
Aug 15 #Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
Aug 15 #Javascript
js设计模式之单例模式原理与用法详解
Aug 15 #Javascript
js设计模式之代理模式及订阅发布模式实例详解
Aug 15 #Javascript
JS实现水平遍历和嵌套递归操作示例
Aug 15 #Javascript
angularjs1.X 重构controller 的方法小结
Aug 15 #Javascript
浅析Vue中拆分视图层代码的5点建议
Aug 15 #Javascript
You might like
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
php join函数应用
2011/05/04 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
淘宝搜索框效果实现分析
2011/03/05 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
js滚动条回到顶部的代码
2011/12/06 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
2016/08/08 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
python通过实例讲解反射机制
2019/10/17 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
python文件及目录操作代码汇总
2020/07/08 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
工地资料员岗位职责
2013/12/31 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏