目前卡在 微信支付“统一下单” 这里了,取不到 prepay_id (这个很重要吧,我看要支付,主要就是用这个)
我的代码:
require_once "jssdk.php";
$jssdk = new JSSDK("wx2c38c0ca6e0701f1", "4f592362172c3fee98ec530ff092d2d6");
$signPackage = $jssdk->GetSignPackage();
$out_trade_no=date("Ymd").$_SESSION["user_phone"];
$iipp=$_SERVER["REMOTE_ADDR"];
//使用方法
$post_data="<?xml version='1.0' encoding='UTF-8'?>
<xml>
<appid><![CDATA[wx2c38c0ca6e0701f1]]></appid>
<attach><![CDATA[".$_SESSION["user_phone"]."]]></attach>
<body><![CDATA[YYXWC]]></body>
<mch_id><![CDATA[1280065601]]></mch_id>
<nonce_str><![CDATA[".$signPackage["nonceStr"]."]]></nonce_str>
<notify_url><![CDATA[http://eleej.com/2_0/tt/test2.php]]></notify_url>
<openid><![CDATA[".$_SESSION["openid"]."]]></openid>
<out_trade_no><![CDATA[".$out_trade_no."]]></out_trade_no>
<spbill_create_ip><![CDATA[".$iipp."]]></spbill_create_ip>
<total_fee><![CDATA[1]]></total_fee>
<trade_type><![CDATA[JSAPI]]></trade_type>
<sign><![CDATA[".$signPackage["signature"]."]]></sign>
</xml>";
echo $signPackage["signature"]."<br><br><br>";
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL,"https://api.mch.weixin.qq.com/pay/unifiedorder");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
// grab URL, and print
$response=curl_exec($ch);
curl_close($ch);
//$unifiedorder=send_post('https://api.mch.weixin.qq.com/pay/unifiedorder', $post_data);
$parser = xml_parser_create();
xml_parse_into_struct($parser, $response, $values, $index);
var_dump($values[0]);echo "<br><br><br>";
var_dump($values[1]);echo "<br><br><br>";
var_dump($values[2]);echo "<br><br><br>";
var_dump($values[3]);echo "<br><br><br>";
var_dump($values[4]);echo "<br><br><br>";
var_dump($values[5]);echo "<br><br><br>";
看了一下返回结果, 主要报错:SIGN ERROR
这是我的sign值传$signPackage["signature"]造成的错误吗?
这里到底要怎么写才能得到prepay_id,求解 多谢
签名错误,请仔细查看官方的文档,就是没有按照要求写对。