1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php 支付签名验证失败 choosewxpay fail解决 微信支付签名验证错误解决

php 支付签名验证失败 choosewxpay fail解决 微信支付签名验证错误解决

时间:2020-06-18 10:53:11

相关推荐

php 支付签名验证失败 choosewxpay fail解决 微信支付签名验证错误解决

require_once("config.php");//这个文件原来写过的博客有/display.php?id=9

//统一下单

$openid=$_POST['openid'];

$arr['appid']=$appid;//商户appid

$arr['mch_id']=$mch_id;//微信支付分配的商户号

$arr['openid']=$openid;//用户openid

$arr['nonce_str']=createNoncestr();//随机字符串

$arr['out_trade_no']="jzz".date("YmdHis")."15395157530";//商户订单号

$arr['body']="金种子酒-99元";//商品描述

$arr['total_fee']=1;//付款金额,单位分

$arr['spbill_create_ip']=$_SERVER['REMOTE_ADDR'];//调用接口的机器Ip地址

$arr['trade_type']="JSAPI";

$arr['notify_url']="/hfxzt/qzb/baoming/pay.php";

$arr['sign']=getSign($arr,$key);//签名

$xml=arrayToXml($arr);

//生成预支付交易会话标识

$data=postXmlCurl($xml,"https://api.mch./pay/unifiedorder");

$data=xmlToArray($data);

//对应的wx.chooseWXPay里面的参数,这里面的生成需要的参数要注意大小写,这个签名是独立的

$data2['timeStamp']=time();

$data2['appId']=$appid;

$data2['nonceStr']=createNoncestr();

$data2['package']="prepay_id=".$data[prepay_id];

$data2['signType']="MD5";

$data2['paySign']=getSign($data2,$key);

echojson_encode($data2);//前端页面的js里请求上面的

$.ajax({

type:'POST',

url:'pay.php',

data:{"openid":""},

dataType:"json",

success:function(data){

alert(data.timeStamp);

alert(data.nonceStr);

alert(data.package);

alert(data.paySign);

wx.chooseWXPay({

//支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。

但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符

timestamp:data.timeStamp,

//支付签名随机串,不长于32位

nonceStr:data.nonceStr,

//统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)

package:data.package,

//签名方式,默认为'SHA1',使用新版支付需传入'MD5'

signType:'MD5',

paySign:data.paySign,//支付签名

success:function(res){

//支付成功后的回调函数

//outputObj(res);

if(res.errMsg=="chooseWXPay:ok"){

location.href="home.php";

}

}

});

}

})

}

//alert出js对象

functionoutputObj(obj){

vardescription="";

for(variinobj){

description+=i+"="+obj[i]+"\n";

}

alert(description);

}

留 言

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。