PHP获取微信支付v2预支付参数prepay_id后在小程序端完成支付
PS:在上一篇文章中,通过对主体上传xml数据进行签名获取到了微信返回的数据,将返回的xml数据中的prepay_id提取出来后就可以进行下一步: 对prepay_id以及其他所需参数进行在此签名并将数据返回小程序端
PHP代码:
$timeStamp = time();
$postData = array( //再次签名的主体内容'appId' => 'appId=此处写你的appid','nonceStr' => 'nonceStr=' . $nonce_str,'package' => 'package=prepay_id=' . $prepay_id,'signType' => 'signType=MD5','timeStamp' => 'timeStamp=' . $timeStamp,'key' => 'key=此处写你的APIv2key',
);$disposeData = implode('&', $postData); //将签名主体内容由数组转化为字符串
$getPaySign = MD5($disposeData); //使用MD5进行签名
$paySign = strtoupper($getPaySign);
$payBody = array( //返回给小程序的内容'timeStamp' => (string)$timeStamp,'nonceStr' => $nonce_str,'package' => 'prepay_id='.$prepay_id,'signType' => 'MD5','paySign' => $paySign,
);
$getpreData = json_encode($payBody);
echo $getpreData;
PS:上方PHP代码中需要注意的是:进行再签名的数据中,appId中的I是大写,在上一篇文章中的appid是小写,在此签名中的nonce_str与上一篇中获取prepay_id所需要的nonce_str是同一个变量,不需要再次生成第二个32位随机字符串,参与签名的时间戳与返回给微信的时间戳做好保持相同
小程序端JS代码:
getxml(){var test = thiswx.getStorage({ //此处openid是从缓存中获取,我在app.js中获取openid,并将其存入本地缓存之中key:'openid',success(res){console.log(res)test.setData({'openid':res.data})console.log(test.data.openid)}})wx.request({url: 'http://192.168.0.103:2908/wxPayV2/getPrepay_id.php', //此处改为你的PHP文件地址method:'POST',header:{'content-type':'application/x-www-form-urlencoded'},data:{'openid':test.data.openid,'description':'0.38mm.pen', //商品描述,这里我写死了,方便后期测试用的,注意修改'total':1 //总费用,单位为分,实际使用请乘100使其变为元},success(res){console.log(res)// test.setData({ //这一段内容看情况可以舍弃// 'nonceStr':res.data.nonceStr,// 'package':res.data.package,// 'paySign': res.data.paySign,// 'timeStamp': res.data.timeStamp// })wx.requestPayment({nonceStr: res.data.nonceStr,package: res.data.package,paySign: res.data.paySign,timeStamp: res.data.timeStamp,signType: res.data.signType,success(res){console.log(res)}})}})},
以上就是如何在小程序端拉起微信支付收银台,总体来看,完成微信支付v2 JSAPI支付,总计需要两次签名,可以选择使用MD5与HMAC-SHA256进行签名,注意appid参数的大小写,注意两次签名中生成的nonce_str要相同,参与签名的时间戳参数也要与返回小程序端的时间戳保持相同
本文原创为CSDN用户:缱绻淡蓝海
PHP获取微信支付v2预支付参数prepay_id后在小程序端完成支付相关推荐
- 微信小程序接入微信支付(三):小程序端调用支付接口
微信小程序调用支付接口官方文档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=5 在上一节中 ...
- c语言学籍管理系统小程序,学籍业务办理系统(开源 v2.0发布 优化代码,增加小程序端)...
更新说明: 1.此2.0版,大幅度优化代码,增加小程序端方便使用 2.v1.0测试地址已关,请勿测试 学生在校期间避免不了要和各种证明打交道,比如学籍证明.转专业申请.休学申请.退学申请等等.此类业务 ...
- 微信小程序开发笔记 支付篇③——微信支付JSAPI下单和微信小程序调起支付(V2版本)
文章目录 一.前文 二.流程图 三.SpringBoot接口实现 2.1 微信调起支付所需数据 2.2 下单接口 2.3 支付回调接口 三.微信小程序实现 3.1 JSAP统一下单 3.2 小程序调起 ...
- 微信小程序服务商模式支付巨坑解决!
今日有个在同一个小程序支付 款项需要付到不同的银行卡里去??? 于是找了下微信小程序支付文档,只有个requestPayment方法 emmm 去看看小程序后台吧 ok 有个微信支付 但是只能绑定一 ...
- java 微信支付成功回调_微信支付成功但并未走回调方法(小程序支付)
问题描述 项目采用: Spring Cloud + Boot + Gateway服务网关 + Consu 注册中心 在小程序发起微信支付后, 调用后台服务的发起微信预支付,通过预支付拿到的返回信息小程 ...
- 微信小程序订单生成支付二维码接口 code
手机的小程序订单是直接拉起支付界面的,有些朋友需要生成支付二维码 这边就需要去调用微信的支付二维码接口了 需要的参数是 session_id, timeStamp, nonceStr, package ...
- 微信小程序—微信小程序端支付代码
只有微信小程序端的代码,如下 Page({data: {},onLoad: function (options) {// 页面初始化 options为页面跳转所带来的参数var that = this ...
- 微信小程序如何实现支付功能?看官方文档头疼(使用云函数的方式操作)
先来个效果图 ^_^ 微信支付功能,个人公众号是没有办法进行开发支付功能的,需要是使用非个人公众号进行注册(如:营业执照等,可以去淘宝购买一个也行 大概500左右) 公众平台的配置可以参考文档,这里 ...
- 【SpringBoot学习】39、SpringBoot 集成 wxJava 微信小程序:订单支付
文章目录 SpringBoot 集成 wxJava 微信小程序:订单支付 1.整合 wxJava 小程序 2.支付配置类 3.application.yml 配置 4.授权登录流程 5.uniapp ...
最新文章
- python宏替换_#和##在宏替换中的作用
- python stringvar函数_Tkinter 求助,怎么获取StringVar() 的值
- mysql + keepalived高可用
- 对tf.nn.softmax的理解
- android中的mvp模式怎么定义,详解MVP模式在Android开发中的应用
- 心理阴影面积 (5 分)
- 【HDOJ2222】Keywords Search(AC自动机)
- 稀疏编码: LASSO,近端梯度优化(PGD),迭代软阈值算法(ISTA),L-Lipschitz条件,软阈值
- 洗衣机一边进水一边出水 更换排水阀皮碗
- Jquery读取.Net WebService Json数据
- QCC300x学习笔记:自定义一个GATT client
- HTML5轮播图全代码
- 如何修改计算机mac,苹果电脑MAC地址修改的方法
- 3y开发都不的不写单元测试,然后被被批了
- 惠州环境监测实验室建设面积要求
- 批量修改操作成功,但是Oracle返回的结果为-1
- 上位机软件开发项目案例(一)_C#开发
- C# USB转串口编程 - 查找COM口
- Spring中 List赋值 以及 util:list 全局使用
- MyEclipse2014安装jadeclipse插件
热门文章
- JAVA对图片进行等比/非等比压缩处理
- 不是有效的win32应用程序_什么是模块,VBA各种模块的有效行为
- matlab从csv文件中读取时间转换异常
- 旅行商问题在现代物流中的意义
- 20190827-Ubuntu查看内存槽的数目及内存信息
- 用计算机和手算标准差不一致,统计基础知识与统计实务学习指导(2015版).doc
- windows 8 新登陆方式(图片密码、Pin码)
- 学python多大年龄可以学车_考驾照的最小年龄,多少岁可以考驾照
- STM32用cube配置FATFS模式下SPI读写SD卡
- PgRouting求解大数据量最短路径