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);
}
留 言