快速对接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 定义function的三种方式小结
Oct 16 Javascript
jQuery DOM操作实例
Mar 05 Javascript
jquery如何根据值设置默认的选中项
Mar 17 Javascript
jquery移动点击的项目到列表最顶端的方法
Jun 24 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
jQuery电话号码验证实例
Jan 05 Javascript
BootStrap中Table隐藏后显示问题的实现代码
Aug 31 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
Jan 20 Javascript
django中使用vue.js的要点总结
Jul 07 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
Sep 28 Javascript
基于Vue全局组件与局部组件的区别说明
Aug 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
php cookie的操作实现代码(登录)
2010/12/29 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
PHP模拟asp中response类实现方法
2015/08/08 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python实现HTTP协议下的文件下载方法总结
2016/04/20 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
利用python修改json文件的value方法
2018/12/31 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
管理部副部长岗位职责范文
2014/03/09 职场文书
实习单位证明范例
2014/11/17 职场文书
工程进度款催款函
2015/06/24 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
muduo TcpServer模块源码分析
2022/04/26 Redis
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技