快速对接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作用域与作用域链深入解析
Dec 06 Javascript
js中的事件捕捉模型与冒泡模型实例分析
Jan 10 Javascript
JS实现很酷的EMAIL地址添加功能实例
Feb 28 Javascript
如何屏蔽防止别的网站嵌入框架代码
Aug 24 Javascript
jQuery实现伪分页的方法分享
Feb 17 Javascript
jQuery简单注册和禁用全局事件的方法
Jul 25 Javascript
js每隔两秒输出数组中的一项(实例)
May 28 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
Jan 17 Javascript
vue--vuex详解
Apr 15 Javascript
微信小程序防止多次点击跳转(函数节流)
Sep 19 Javascript
vue.js 实现a标签href里添加参数
Nov 12 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
Nov 03 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 页面执行时间计算代码
2008/12/04 PHP
深入理解PHP之require/include顺序 推荐
2011/01/02 PHP
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
2013/09/11 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
浅入深出Vue之组件使用
2019/07/11 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
写了个监控nginx进程的Python脚本
2012/05/10 Python
python类中super()和__init__()的区别
2016/10/18 Python
Python3中使用PyMongo的方法详解
2017/07/28 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
Python应用实现处理excel数据过程解析
2020/06/19 Python
css3中transition属性详解
2014/09/02 HTML / CSS
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
购买一个高级域名:BuyDomains
2018/03/11 全球购物
在校硕士自我鉴定
2014/01/23 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
护士医德医风自我评价
2014/09/15 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android