快速对接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 相关文章推荐
使用Modello编写JavaScript类
Dec 22 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
Aug 28 Javascript
用jquery和json从后台获得数据集的代码
Nov 07 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
Dec 25 Javascript
JS 按钮点击触发(兼容IE、火狐)
Aug 07 Javascript
使用jquery解析XML的方法
Sep 05 Javascript
jQuery圆形统计图开发实例
Jan 04 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
May 09 Javascript
vue axios 二次封装的示例代码
Dec 08 Javascript
vue+springmvc导出excel数据的实现代码
Jun 27 Javascript
详解如何在微信小程序中愉快地使用sass
Jul 30 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
Jan 28 jQuery
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读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
百度小程序自定义通用toast组件
2019/07/17 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
python类和继承用法实例
2015/07/07 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
Python常见数据类型转换操作示例
2019/05/08 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
大学生职业生涯规划书前言
2014/01/09 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
刑事案件上诉状
2015/05/23 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
基于angular实现树形二级表格
2021/10/16 Javascript
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS