微信支付签名验证提示支付验证签名失败怎么破

安心财富客户端,
一手掌握,马上有钱
您的当前位置: >
> 微信支付之异步通知签名错误
特此声明:以上企业信息来自互联网,本公司不对真实性负责。此信息为企业免费宣传展示。安心贷与以上企业无任何关联关系。(若需删除,请致电安心贷客服)
开发过程中可能遇到异步通知页面签名无法通过;那么原因何在呢?我直说我碰到的这个先看我错误时候微信回馈的xml
类型 产品名称 期限 预期收益率
实用理财工具
理财计算器
贷款计算器
信用卡计算器
理财频道入口
你可能也感兴趣
关注微信账号微信支付-支付验证签名失败(iOS) - 简书
微信支付-支付验证签名失败(iOS)
在项目中添加微信支付,iOS端的所有东西都已经按照文档搞好了,可就是跳转到微信的时候显示“支付验证签名失败”,可是安卓端的都没有问题,就很郁闷了。后来在对文档的时候发现。。。
时间戳十位啊。。。可是后台返回的timestamp确实13位的。。。怒找后台改了立刻OK了。。。所以说咱们一定要协调好,仔细查对文档,毕竟用的是人家的东西数字时间戳与时间的相互抓换注意:由于Java比PHP的时间精确,所以,后台数据的时间java是13位的,而php是10位的,iOS时间抓换只支持10位数的,所以如果java写后台的话,把数字/1000就行了.具体做法如下:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"YYYY-MM-dd HH:mm:ss";
NSDate *date = [[NSDate alloc] init];
SString *datestr = [formatter stringFromDate:date];
NSLog(@"%@",datestr);
// 时间转化为数字时间戳
- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherD
@property (readonly) NSTimeInterval timeIntervalSinceN
@property (readonly) NSTimeInterval timeIntervalSince1970;
NSInteger numtime = date.timeIntervalSince1970;
NSString *numtimestr = [NSString stringWithFormat:@"%ld",numtime];
NSLog(@"%@",numtimestr);
// 数字时间转化为时间戳,如果为13位,除以1000,或者去掉后3位即可
NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:numtime];
NSString *datestr2 = [formatter stringFromDate:date2];
NSLog(@"%@",datestr2);
ps:服务端最后传给客户端的签名是需要重新生成的共被编辑 12 次
支付验证签名支付失败?——
微信支付的app支付
标题文字 ##已解决
微信支付的过程出现的问题 我写了一篇
支付验证签名支付失败?——
微信支付的app支付
标题文字 ##已解决
微信支付的过程出现的问题 我写了一篇
支付验证签名支付失败?——
微信支付的app支付
标题文字 ##已解决
补充内容 | 添加代码
支付验证签名支付失败?——
微信支付的app支付
这是IOS端截图:
情况描述:
1,调用同一下单接口,已经获取prepay_id等值了呀!
2,给app提交数据之前,有个二次签名嘛,我按规则签了呀!//请大神看看我写的代码是否正确
3,为啥会出现这种问题?
4,跪求大神指导!
这是我二次签名的代码:
............ //设置参数等等
$wx_result = $wechatAppPay-&unifiedOrder( $params );//调用同一下单接口,并成功返回结果
//开始生成二次签名
$sign_array
= array();//第二次签名需要的参数
$sign_array['appid']
= $wx_result['appid'];
$sign_array['mch_id']
= $wx_result['mch_id'];
$sign_array['prepay_id'] = $wx_result['prepay_id'];
$sign_array['nonce_str'] = $wx_result['nonce_str'];
$sign_array['timeStamp'] = time();
$sign_array['package']
= $wx_result['Sign=WXPay'];
$sign_two = $wechatAppPay-&MakeSign($sign_array);//调用签名生成函数
下面是我生成签名的函数代码:
* 生成签名
@return 签名
public function MakeSign( $params ){
//签名步骤一:按字典序排序数组参数
ksort($params);
$string = $this-&ToUrlParams($params);//调用拼接函数
//签名步骤二:在string后加入KEY
$string = $string . "&key=".$this-&
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
* 将参数拼接为url: key=value&key=value
public function ToUrlParams( $params ){
$string = '';
if( !empty($params) ){
$array = array();
foreach( $params as $key =& $value ){
$array[] = $key.'='.$
$string = implode("&",$array);
这个问题已解决,原因是第二次签名时的参数名不对。
/////////////////////////////更新
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////但是回调不知带哦怎么写了!!
但收不到值(收不到微信给发的 支付结果通用通知 ),也不知道是怎么回事
接收微信支付异步通知回调地址:
$notify_url
= '/index.php/apps/cart/wxResult';
//微信支付回调函数
public function wxResult()
$data = array();
$data = $this-&wechatAppPay-&getNotifyData();//调用获取数据函数
////////********逻辑处理********//////////
$data2 = $this-&wechatAppPay-&replyNotify();//接收通知成功后应答输出XML数据
$this-&jsonmsg($data);
获取通知数据的函数:
* 获取支付结果通知数据
* return array
public function getNotifyData(){
//获取通知的数据
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$data = array();
if( empty($xml) ){
$data = $this-&xml_to_data( $xml );
if( !empty($data['return_code']) ){
if( $data['return_code'] == 'FAIL' ){
接收通知成功后应答输出XML数据函数:
* 接收通知成功后应答输出XML数据
* @param string $xml
public function replyNotify(){
$data['return_code'] = 'SUCCESS';
$data['return_msg'] = 'OK';
$xml = $this-&data_to_xml( $data );
**已解决///////更新/////////////////商户系统对于支付结果通知的内容做签名验证///////////////////////////////**
正在做商户系统对于支付结果通知的内容做签名验证,咋验证?是啥?逻辑思路是啥?
支付验证签名支付失败?——
微信支付的app支付
这是IOS端截图:
情况描述:
1,调用同一下单接口,已经获取prepay_id等值了呀!
2,给app提交数据之前,有个二次签名嘛,我按规则签了呀!//请大神看看我写的代码是否正确
3,为啥会出现这种问题?
4,跪求大神指导!
这是我二次签名的代码:
............ //设置参数等等
$wx_result = $wechatAppPay-&unifiedOrder( $params );//调用同一下单接口,并成功返回结果
//开始生成二次签名
$sign_array
= array();//第二次签名需要的参数
$sign_array['appid']
= $wx_result['appid'];
$sign_array['mch_id']
= $wx_result['mch_id'];
$sign_array['prepay_id'] = $wx_result['prepay_id'];
$sign_array['nonce_str'] = $wx_result['nonce_str'];
$sign_array['timeStamp'] = time();
$sign_array['package']
= $wx_result['Sign=WXPay'];
$sign_two = $wechatAppPay-&MakeSign($sign_array);//调用签名生成函数
下面是我生成签名的函数代码:
* 生成签名
@return 签名
public function MakeSign( $params ){
//签名步骤一:按字典序排序数组参数
ksort($params);
$string = $this-&ToUrlParams($params);//调用拼接函数
//签名步骤二:在string后加入KEY
$string = $string . "&key=".$this-&
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
* 将参数拼接为url: key=value&key=value
public function ToUrlParams( $params ){
$string = '';
if( !empty($params) ){
$array = array();
foreach( $params as $key =& $value ){
$array[] = $key.'='.$
$string = implode("&",$array);
这个问题已解决,原因是第二次签名时的参数名不对。
/////////////////////////////更新
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////但是回调不知带哦怎么写了!!
但收不到值(收不到微信给发的 支付结果通用通知 ),也不知道是怎么回事
接收微信支付异步通知回调地址:
$notify_url
= '/index.php/apps/cart/wxResult';
//微信支付回调函数
public function wxResult()
$data = array();
$data = $this-&wechatAppPay-&getNotifyData();//调用获取数据函数
////////********逻辑处理********//////////
$data2 = $this-&wechatAppPay-&replyNotify();//接收通知成功后应答输出XML数据
$this-&jsonmsg($data);
获取通知数据的函数:
* 获取支付结果通知数据
* return array
public function getNotifyData(){
//获取通知的数据
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$data = array();
if( empty($xml) ){
$data = $this-&xml_to_data( $xml );
if( !empty($data['return_code']) ){
if( $data['return_code'] == 'FAIL' ){
接收通知成功后应答输出XML数据函数:
* 接收通知成功后应答输出XML数据
* @param string $xml
public function replyNotify(){
$data['return_code'] = 'SUCCESS';
$data['return_msg'] = 'OK';
$xml = $this-&data_to_xml( $data );
支付验证签名支付失败?——
微信支付的app支付
这是IOS端截图:
情况描述:
1,调用同一下单接口,已经获取prepay_id等值了呀!
2,给app提交数据之前,有个二次签名嘛,我按规则签了呀!//请大神看看我写的代码是否正确
3,为啥会出现这种问题?
4,跪求大神指导!
这是我二次签名的代码:
............ //设置参数等等
$wx_result = $wechatAppPay-&unifiedOrder( $params );//调用同一下单接口,并成功返回结果
//开始生成二次签名
$sign_array
= array();//第二次签名需要的参数
$sign_array['appid']
= $wx_result['appid'];
$sign_array['mch_id']
= $wx_result['mch_id'];
$sign_array['prepay_id'] = $wx_result['prepay_id'];
$sign_array['nonce_str'] = $wx_result['nonce_str'];
$sign_array['timeStamp'] = time();
$sign_array['package']
= $wx_result['Sign=WXPay'];
$sign_two = $wechatAppPay-&MakeSign($sign_array);//调用签名生成函数
下面是我生成签名的函数代码:
* 生成签名
@return 签名
public function MakeSign( $params ){
//签名步骤一:按字典序排序数组参数
ksort($params);
$string = $this-&ToUrlParams($params);//调用拼接函数
//签名步骤二:在string后加入KEY
$string = $string . "&key=".$this-&
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
* 将参数拼接为url: key=value&key=value
public function ToUrlParams( $params ){
$string = '';
if( !empty($params) ){
$array = array();
foreach( $params as $key =& $value ){
$array[] = $key.'='.$
$string = implode("&",$array);
这个问题已解决,原因是第二次签名时的参数名不对。
/////////////////////////////更新
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////但是回调不知带哦怎么写了!!
但收不到值(收不到微信给发的 支付结果通用通知 ),也不知道是怎么回事
接收微信支付异步通知回调地址:
$notify_url
= '/index.php/apps/cart/wxResult';
//微信支付回调函数
public function wxResult()
$data = array();
$data = $this-&wechatAppPay-&getNotifyData();//调用获取数据函数
////////********逻辑处理********//////////
$data2 = $this-&wechatAppPay-&replyNotify();//接收通知成功后应答输出XML数据
$this-&jsonmsg($data);
获取通知数据的函数:
* 获取支付结果通知数据
* return array
public function getNotifyData(){
//获取通知的数据
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$data = array();
if( empty($xml) ){
$data = $this-&xml_to_data( $xml );
if( !empty($data['return_code']) ){
if( $data['return_code'] == 'FAIL' ){
接收通知成功后应答输出XML数据函数:
* 接收通知成功后应答输出XML数据
* @param string $xml
public function replyNotify(){
$data['return_code'] = 'SUCCESS';
$data['return_msg'] = 'OK';
$xml = $this-&data_to_xml( $data );
支付验证签名支付失败?——
微信支付的app支付
这是IOS端截图:
情况描述:
1,调用同一下单接口,已经获取prepay_id等值了呀!
2,给app提交数据之前,有个二次签名嘛,我按规则签了呀!//请大神看看我写的代码是否正确
3,为啥会出现这种问题?
4,跪求大神指导!
这是我二次签名的代码:
............ //设置参数等等
$wx_result = $wechatAppPay-&unifiedOrder( $params );//调用同一下单接口,并成功返回结果
//开始生成二次签名
$sign_array
= array();//第二次签名需要的参数
$sign_array['appid']
= $wx_result['appid'];
$sign_array['mch_id']
= $wx_result['mch_id'];
$sign_array['prepay_id'] = $wx_result['prepay_id'];
$sign_array['nonce_str'] = $wx_result['nonce_str'];
$sign_array['timeStamp'] = time();
$sign_array['package']
= $wx_result['Sign=WXPay'];
$sign_two = $wechatAppPay-&MakeSign($sign_array);//调用签名生成函数
下面是我生成签名的函数代码:
* 生成签名
@return 签名
public function MakeSign( $params ){
//签名步骤一:按字典序排序数组参数
ksort($params);
$string = $this-&ToUrlParams($params);//调用拼接函数
//签名步骤二:在string后加入KEY
$string = $string . "&key=".$this-&
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
* 将参数拼接为url: key=value&key=value
public function ToUrlParams( $params ){
$string = '';
if( !empty($params) ){
$array = array();
foreach( $params as $key =& $value ){
$array[] = $key.'='.$
$string = implode("&",$array);
这个问题已解决,原因是第二次签名时的参数名不对。
/////////////////////////////更新/////////////////////////////////////////////但是回调不知带哦怎么写了!!
但收不到值(收不到微信给发的 支付结果通用通知 ),也不知道是怎么回事
接收微信支付异步通知回调地址:
$notify_url
= '/index.php/apps/cart/wxResult';
//微信支付回调函数
public function wxResult()
$data = array();
$data = $this-&wechatAppPay-&getNotifyData();//调用获取数据函数
////////********逻辑处理********//////////
$data2 = $this-&wechatAppPay-&replyNotify();//接收通知成功后应答输出XML数据
$this-&jsonmsg($data);
获取通知数据的函数:
* 获取支付结果通知数据
* return array
public function getNotifyData(){
//获取通知的数据
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$data = array();
if( empty($xml) ){
$data = $this-&xml_to_data( $xml );
if( !empty($data['return_code']) ){
if( $data['return_code'] == 'FAIL' ){
接收通知成功后应答输出XML数据函数:
* 接收通知成功后应答输出XML数据
* @param string $xml
public function replyNotify(){
$data['return_code'] = 'SUCCESS';
$data['return_msg'] = 'OK';
$xml = $this-&data_to_xml( $data );
补充内容 | 添加代码
支付验证签名支付失败?——
微信支付的app支付
这是IOS端截图:
情况描述:
1,调用同一下单接口,已经获取prepay_id等值了呀!
2,给app提交数据之前,有个二次签名嘛,我按规则签了呀!//请大神看看我写的代码是否正确
3,为啥会出现这种问题?
4,跪求大神指导!
这是我二次签名的代码:
............ //设置参数等等
$wx_result = $wechatAppPay-&unifiedOrder( $params );//调用同一下单接口,并成功返回结果
//开始生成二次签名
$sign_array
= array();//第二次签名需要的参数
$sign_array['appid']
= $wx_result['appid'];
$sign_array['mch_id']
= $wx_result['mch_id'];
$sign_array['prepay_id'] = $wx_result['prepay_id'];
$sign_array['nonce_str'] = $wx_result['nonce_str'];
$sign_array['timeStamp'] = time();
$sign_array['package']
= $wx_result['Sign=WXPay'];
$sign_two = $wechatAppPay-&MakeSign($sign_array);//调用签名生成函数
下面是我生成签名的函数代码:
* 生成签名
@return 签名
public function MakeSign( $params ){
//签名步骤一:按字典序排序数组参数
ksort($params);
$string = $this-&ToUrlParams($params);//调用拼接函数
//签名步骤二:在string后加入KEY
$string = $string . "&key=".$this-&
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
* 将参数拼接为url: key=value&key=value
public function ToUrlParams( $params ){
$string = '';
if( !empty($params) ){
$array = array();
foreach( $params as $key =& $value ){
$array[] = $key.'='.$
$string = implode("&",$array);
这个问题已解决,原因是第二次签名时的参数名不对。
但是回调不知带哦怎么写了!!
但收不到值(收不到微信给发的 支付结果通用通知 ),也不知道是怎么回事
接收微信支付异步通知回调地址:
$notify_url
= '/index.php/apps/cart/wxResult';
//微信支付回调函数
public function wxResult()
$data = array();
$data = $this-&wechatAppPay-&getNotifyData();//调用获取数据函数
////////********逻辑处理********//////////
$data2 = $this-&wechatAppPay-&replyNotify();//接收通知成功后应答输出XML数据
$this-&jsonmsg($data);
获取通知数据的函数:
* 获取支付结果通知数据
* return array
public function getNotifyData(){
//获取通知的数据
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$data = array();
if( empty($xml) ){
$data = $this-&xml_to_data( $xml );
if( !empty($data['return_code']) ){
if( $data['return_code'] == 'FAIL' ){
接收通知成功后应答输出XML数据函数:
* 接收通知成功后应答输出XML数据
* @param string $xml
public function replyNotify(){
$data['return_code'] = 'SUCCESS';
$data['return_msg'] = 'OK';
$xml = $this-&data_to_xml( $data );
补充内容 | 添加代码
支付验证签名支付失败?——
微信支付的app支付
这是IOS端截图:
情况描述:
1,调用同一下单接口,已经获取prepay_id等值了呀!
2,给app提交数据之前,有个二次签名嘛,我按规则签了呀!//请大神看看我写的代码是否正确
3,为啥会出现这种问题?
4,跪求大神指导!
这是我二次签名的代码:
............ //设置参数等等
$wx_result = $wechatAppPay-&unifiedOrder( $params );//调用同一下单接口,并成功返回结果
//开始生成二次签名
$sign_array
= array();//第二次签名需要的参数
$sign_array['appid']
= $wx_result['appid'];
$sign_array['mch_id']
= $wx_result['mch_id'];
$sign_array['prepay_id'] = $wx_result['prepay_id'];
$sign_array['nonce_str'] = $wx_result['nonce_str'];
$sign_array['timeStamp'] = time();
$sign_array['package']
= $wx_result['Sign=WXPay'];
$sign_two = $wechatAppPay-&MakeSign($sign_array);//调用签名生成函数
下面是我生成签名的函数代码:
* 生成签名
@return 签名
public function MakeSign( $params ){
//签名步骤一:按字典序排序数组参数
ksort($params);
$string = $this-&ToUrlParams($params);//调用拼接函数
//签名步骤二:在string后加入KEY
$string = $string . "&key=".$this-&
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
* 将参数拼接为url: key=value&key=value
public function ToUrlParams( $params ){
$string = '';
if( !empty($params) ){
$array = array();
foreach( $params as $key =& $value ){
$array[] = $key.'='.$
$string = implode("&",$array);
这个问题已解决,原因是第二次签名时的参数名不对。
但是回调不知带哦怎么写了!!下面是获取通知数据的函数:
* 获取支付结果通知数据
* return array
public function getNotifyData(){
//获取通知的数据
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$data = array();
if( empty($xml) ){
$data = $this-&xml_to_data( $xml );
if( !empty($data['return_code']) ){
if( $data['return_code'] == 'FAIL' ){
但收不到值(收不到微信给发的 支付结果通用通知 ),也不知道是怎么回事
接收微信支付异步通知回调地址:
$notify_url
= '/index.php/apps/cart/wxResult';
补充内容 | 添加代码
支付验证签名支付失败?——
微信支付的app支付
这是IOS端截图:
情况描述:
1,调用同一下单接口,已经获取prepay_id等值了呀!
2,给app提交数据之前,有个二次签名嘛,我按规则签了呀!//请大神看看我写的代码是否正确
3,为啥会出现这种问题?
4,跪求大神指导!
这是我二次签名的代码:
............ //设置参数等等
$wx_result = $wechatAppPay-&unifiedOrder( $params );//调用同一下单接口,并成功返回结果
//开始生成二次签名
$sign_array
= array();//第二次签名需要的参数
$sign_array['appid']
= $wx_result['appid'];
$sign_array['mch_id']
= $wx_result['mch_id'];
$sign_array['prepay_id'] = $wx_result['prepay_id'];
$sign_array['nonce_str'] = $wx_result['nonce_str'];
$sign_array['timeStamp'] = time();
$sign_array['package']
= $wx_result['Sign=WXPay'];
$sign_two = $wechatAppPay-&MakeSign($sign_array);//调用签名生成函数
下面是我生成签名的函数代码:
* 生成签名
@return 签名
public function MakeSign( $params ){
//签名步骤一:按字典序排序数组参数
ksort($params);
$string = $this-&ToUrlParams($params);//调用拼接函数
//签名步骤二:在string后加入KEY
$string = $string . "&key=".$this-&
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
* 将参数拼接为url: key=value&key=value
public function ToUrlParams( $params ){
$string = '';
if( !empty($params) ){
$array = array();
foreach( $params as $key =& $value ){
$array[] = $key.'='.$
$string = implode("&",$array);
这个问题已解决,原因是第二次签名时的参数名不对。
但是回调不知带哦怎么写了!!下面是获取通知数据的函数:
* 获取支付结果通知数据
* return array
public function getNotifyData(){
//获取通知的数据
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$data = array();
if( empty($xml) ){
$data = $this-&xml_to_data( $xml );
if( !empty($data['return_code']) ){
if( $data['return_code'] == 'FAIL' ){
但收不到值(收不到微信给发的 支付结果通用通知 ),也不知道是怎么回事
补充内容 | 添加代码
支付验证签名支付失败?——
微信支付的app支付
这是IOS端截图:
情况描述:
1,调用同一下单接口,已经获取prepay_id等值了呀!
2,给app提交数据之前,有个二次签名嘛,我按规则签了呀!//请大神看看我写的代码是否正确
3,为啥会出现这种问题?
4,跪求大神指导!
这是我二次签名的代码:
............ //设置参数等等
$wx_result = $wechatAppPay-&unifiedOrder( $params );//调用同一下单接口,并成功返回结果
//开始生成二次签名
$sign_array
= array();//第二次签名需要的参数
$sign_array['appid']
= $wx_result['appid'];
$sign_array['mch_id']
= $wx_result['mch_id'];
$sign_array['prepay_id'] = $wx_result['prepay_id'];
$sign_array['nonce_str'] = $wx_result['nonce_str'];
$sign_array['timeStamp'] = time();
$sign_array['package']
= $wx_result['Sign=WXPay'];
$sign_two = $wechatAppPay-&MakeSign($sign_array);//调用签名生成函数
下面是我生成签名的函数代码:
* 生成签名
@return 签名
public function MakeSign( $params ){
//签名步骤一:按字典序排序数组参数
ksort($params);
$string = $this-&ToUrlParams($params);//调用拼接函数
//签名步骤二:在string后加入KEY
$string = $string . "&key=".$this-&
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
* 将参数拼接为url: key=value&key=value
public function ToUrlParams( $params ){
$string = '';
if( !empty($params) ){
$array = array();
foreach( $params as $key =& $value ){
$array[] = $key.'='.$
$string = implode("&",$array);
支付验证签名支付失败?——
微信支付的app支付
这是IOS端截图:
情况描述:
1,调用同一下单接口,已经获取prepay_id等值了呀!
2,给app提交数据之前,有个二次签名嘛,我按规则签了呀!//请大神看看我写的代码是否正确
3,为啥会出现这种问题?
4,跪求大神指导!
这是我二次签名的代码:
............ //设置参数等等
$wx_result = $wechatAppPay-&unifiedOrder( $params );//调用同一下单接口,并成功返回结果
//开始生成二次签名
$sign_array
= array();//第二次签名需要的参数
$sign_array['appid']
= $wx_result['appid'];
$sign_array['mch_id']
= $wx_result['mch_id'];
$sign_array['prepay_id'] = $wx_result['prepay_id'];
$sign_array['nonce_str'] = $wx_result['nonce_str'];
$sign_array['timeStamp'] = time();
$sign_array['package']
= $wx_result['Sign=WXPay'];
$sign_two = $wechatAppPay-&MakeSign($sign_array);//调用签名生成函数
下面是我生成签名的函数代码:
* 生成签名
@return 签名
public function MakeSign( $params ){
//签名步骤一:按字典序排序数组参数
ksort($params);
$string = $this-&ToUrlParams($params);
//签名步骤二:在string后加入KEY
$string = $string . "&key=".$this-&
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
我要该,理由是:

我要回帖

更多关于 微信支付通知签名验证 的文章

 

随机推荐