博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次微信APP支付-1错误排查方法
阅读量:5866 次
发布时间:2019-06-19

本文共 1128 字,大约阅读时间需要 3 分钟。

hot3.png

1.微信统一下单,得到prepayid(预支付交易会话ID)

2.用prepayid二次签名

$resignData = array(	'appid' => $order['appid'] ,				//appid	'partnerid' => $order['mch_id'] ,			//商户号	'prepayid' => $order['prepay_id'] ,			//预支付交易会话ID	'noncestr' => \WxPayApi::getNonceStr() ,	//随机字符串32位	'timestamp' => time() ,						//事件戳	'package' => 'Sign=WXPay'					//package 默认 sign=WXPay);

请注意:

1)上面参数名(key)必须为小写,不然----无止境的-1错误

2)package参数为必填

开始签名

ksort($resignData);			//将参数数组按照参数名ASCII码从小到大排序foreach ($resignData as $key => $item) {	if (!empty($item)) {					//剔除参数值为空的参数		$newArr[] = $key . '=' . $item;		// 整合新的参数数组	}}$stringA = implode("&", $newArr);			//使用 & 符号连接参数$stringSignTemp = $stringA . "&key=" . $key;//拼接key// key是在商户平台API安全里自己设置的$stringSignTemp = MD5($stringSignTemp);		//将字符串进行MD5加密$sign = strtoupper($stringSignTemp);		//将所有字符转换为大写

得到参数,返回给前端

$data['appid'] = $resignData['appid'];$data['partnerid'] = $resignData['partnerid'];$data['prepayid'] = $resignData['prepayid'];$data['package'] = $resignData['package'];$data['noncestr'] = $resignData['noncestr'];$data['timestamp'] = time();$data['sign'] = $sign;

 

转载于:https://my.oschina.net/colinadmin/blog/1571174

你可能感兴趣的文章
Chrome nacl开启
查看>>
注册步骤条
查看>>
Linux运维学习笔记-网络技术知识体系总结
查看>>
spring集成redis——主从配置以及哨兵监控
查看>>
Linux 用户和用户组的基本命令
查看>>
WebStorm 简单部署服务器进行测试操作
查看>>
vue-cli构建路径加载资源出错问题
查看>>
qml connections使用
查看>>
T015 迭代求根
查看>>
Redis常见集群方案、Codis实践及与Twemproxy比较
查看>>
echarts使用笔记五:echarts的Zoom控件
查看>>
【hdu - 1283 最简单的计算机】
查看>>
新版python logging 封装,支持同时向console,file,socket输出
查看>>
Vim光标移动
查看>>
jQuery学习资源参考教程网址推荐
查看>>
MySQL按照汉字的拼音排序(转)
查看>>
Swift-Closures
查看>>
Rocketmq整体分析
查看>>
Django~Models1
查看>>
SpringMVC快速入门
查看>>