快速对接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延迟加载
Mar 09 Javascript
javascript removeChild 使用注意事项
Apr 11 Javascript
javascript 计算两个整数的百分比值
Dec 26 Javascript
js中settimeout方法加参数
Feb 28 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
Jun 20 Javascript
jQuery on()方法示例及jquery on()方法的优点
Aug 27 Javascript
详解Matlab中 sort 函数用法
Mar 20 Javascript
angularJS1 url中携带参数的获取方法
Oct 09 Javascript
JavaScript剩余操作符Rest Operator详解
Jul 20 Javascript
javascript 易错知识点实例小结
Apr 25 Javascript
详解如何使用React Hooks请求数据并渲染
Oct 18 Javascript
vue3使用vue-router的完整步骤记录
Jun 20 Vue.js
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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
一步一步学习PHP(3) php 函数
2010/02/15 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
用jquery来定位
2007/02/20 Javascript
javascript StringBuilder类实现
2008/12/22 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
js控制input输入字符解析
2013/12/27 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
vue实现点击隐藏与显示实例分享
2019/02/13 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
Python文件和目录操作详解
2015/02/08 Python
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
Python实现把类当做字典来访问
2019/12/16 Python
Python中的__init__作用是什么
2020/06/09 Python
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
法学毕业生自我鉴定
2013/11/08 职场文书
幼师专业求职推荐信
2013/11/08 职场文书
幼儿园春游活动方案
2014/01/19 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
中学教师师德承诺书
2014/05/23 职场文书
学校师德师风整改方案
2014/10/28 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python