快速对接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 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
Apr 10 Javascript
node.js中的http.response.writeHead方法使用说明
Dec 14 Javascript
Javascript writable特性介绍
Feb 27 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
Jul 15 Javascript
jquery实现select选择框内容左右移动代码分享
Nov 21 Javascript
JS常见算法详解
Feb 28 Javascript
React Native之TextInput组件解析示例
Aug 22 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 jQuery
React Native 真机断点调试+跨域资源加载出错问题的解决方法
Jan 18 Javascript
JavaScript中Dom操作实例详解
Jul 08 Javascript
Vue Render函数原理及代码实例解析
Jul 30 Javascript
js观察者模式的弹幕案例
Nov 23 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
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
javascript void(0)的妙用
2009/10/21 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
Python中is和==的区别详解
2018/11/15 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
详解Python3 pickle模块用法
2019/09/16 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
教师旷工检讨书
2014/01/18 职场文书
护士进修自我鉴定
2014/02/07 职场文书
小学运动会通讯稿
2015/07/18 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
关于EntityWrapper的in用法
2022/03/22 Java/Android
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL