快速对接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 相关文章推荐
jquery isType() 类型判断代码
Feb 14 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
Apr 02 Javascript
在HTML中插入JavaScript代码的示例
Jun 03 Javascript
使用javascript提交form表单方法汇总
Jun 25 Javascript
Validform表单验证总结篇
Oct 31 Javascript
axios学习教程全攻略
Mar 26 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 Javascript
puppeteer实现html截图的示例代码
Jan 10 Javascript
vue中img src 动态加载本地json的图片路径写法
Apr 25 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
Apr 29 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
Mar 03 Javascript
基于JavaScript实现十五拼图代码实例
Apr 26 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
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
js查错流程归纳
2012/05/04 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
使用jquery实现放大镜效果
2014/09/02 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
2016/07/12 Python
Python守护线程用法实例
2017/06/23 Python
Python如何发布程序的详细教程
2018/10/09 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
python面向对象法实现图书管理系统
2019/04/19 Python
Python pip配置国内源的方法
2020/02/14 Python
Python如何省略括号方法详解
2020/03/21 Python
Python3实现飞机大战游戏
2020/04/24 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
python cookie反爬处理的实现
2020/11/01 Python
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
Java基础知识面试要点
2016/07/29 面试题
护理专业学生的求职信范文
2013/12/11 职场文书
服装厂厂长职责
2013/12/16 职场文书
2014年健康教育实施方案
2014/02/17 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript