快速对接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 XML操作 封装类
Jul 01 Javascript
疯狂Jquery第一天(Jquery学习笔记)
May 11 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
Apr 14 Javascript
JavaScript对Json的增删改属性详解
Jun 02 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
Jul 27 Javascript
javascript设计模式之中介者模式学习笔记
Feb 15 Javascript
详解使用vue实现tab 切换操作
Jul 03 Javascript
react-router browserHistory刷新页面404问题解决方法
Dec 29 Javascript
详解vue微信网页授权最终解决方案
Jun 16 Javascript
微信小程序如何实现在线客服功能
Oct 16 Javascript
jQuery实现的分页插件完整示例
May 26 jQuery
Vue实现腾讯云点播视频上传功能的实现代码
Aug 17 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
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
php导出CSV抽象类实例
2014/09/24 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
jQuery层次选择器用法示例
2016/09/09 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
Python中函数参数调用方式分析
2018/08/09 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
欧克利英国官网:Oakley英国
2019/08/24 全球购物
致跳远、跳高运动员广播稿
2014/01/09 职场文书
个人求职信范文分享
2014/01/31 职场文书
财务总监岗位职责
2015/02/03 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript
python实现的人脸识别打卡系统
2021/05/08 Python
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
go开发alertmanger实现钉钉报警
2021/07/16 Golang
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技