快速对接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 相关文章推荐
js计数器代码
Nov 04 Javascript
Javascript表单验证要注意的事项
Sep 29 Javascript
jQuery中bind()方法用法实例
Jan 19 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
谈谈AngularJs中的隐藏和显示
Dec 09 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
Jun 08 Javascript
JavaScript中创建对象的7种模式详解
Feb 21 Javascript
微信小程序实现顶部选项卡(swiper)
Jun 19 Javascript
Vue.js递归组件构建树形菜单
Dec 24 Javascript
对vue 键盘回车事件的实例讲解
Aug 25 Javascript
jquery选择器和属性对象的操作实例分析
Jan 10 jQuery
Vue项目中使用mock.js的完整步骤
Jan 12 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
解析PHP工厂模式的好处
2013/06/18 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
使用Python函数进行模块化的实现
2019/11/15 Python
jupyter notebook的安装与使用详解
2020/05/18 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
Linux机考试题
2015/07/17 面试题
商业活动邀请函
2014/02/04 职场文书
《掌声》教学反思
2014/02/23 职场文书
小学优秀教育工作者事迹材料
2014/05/09 职场文书
英文求职信范文
2014/05/23 职场文书
个人整改方案范文
2014/10/25 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle
ipad隐藏软件app图标方法
2022/04/19 数码科技