调用微信支付“统一下单”接口时,各种参数怎么填写,求例子?

小福星炜仔
  • 99

目前卡在 微信支付“统一下单” 这里了,取不到 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,求解 多谢

回复
阅读 24.9k
2 个回答

签名错误,请仔细查看官方的文档,就是没有按照要求写对。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏