require_once("config.php"); //这个文件原来写过的博客有http://jipq1016.com/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']="http://jipq1016.com/hfxzt/qzb/baoming/pay.php";
$arr['sign']=getSign($arr,$key); //签名
$xml=arrayToXml($arr);
//生成预支付交易会话标识
$data=postXmlCurl($xml,"https://api.mch.weixin.qq.com/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);
echo json_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对象
function outputObj(obj) {
var description = "";
for (var i in obj) {
description += i + " = " + obj[i] + "\n";
}
alert(description);
}
留 言