快速对接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 相关文章推荐
FireFox中textNode分片的问题
Apr 10 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
Oct 11 Javascript
javascript放大镜效果的简单实现
Dec 09 Javascript
JS+JSP checkBox 全选具体实现
Jan 02 Javascript
JQuery1.8 判断元素是否绑定事件的方法
Jul 10 Javascript
xtemplate node.js 的使用方法实例解析
Aug 22 Javascript
JavaScript中子对象访问父对象的方式详解
Sep 01 Javascript
React组件生命周期详解
Jul 03 Javascript
Vue.js实现tab切换效果
Jul 24 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
vue中watch和computed的区别与使用方法
Aug 23 Javascript
深入理解javascript中的this
Feb 08 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
PHP5 面向对象程序设计
2008/02/13 PHP
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
js Math 对象的方法
2013/09/01 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
jQuery给动态添加的元素绑定事件的方法
2015/03/09 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
Python对字符串实现去重操作的方法示例
2017/08/11 Python
python删除不需要的python文件方法
2018/04/24 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
值传递还是引用传递
2015/02/08 面试题
Java语言程序设计测试题改错题部分
2014/07/22 面试题
一道Delphi面试题
2016/10/28 面试题
《两只鸟蛋》教学反思
2014/02/10 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
Axios取消重复请求的方法实例详解
2021/06/15 Javascript
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS