14
回答
微信支付 统一下单的问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

公司需求一个微信支付的东东,我从官网上down了最新的PHP微信支付sdk。

配置好了商户key,appid,secreat,商户号和测试目录以后,进行JSAPI支付测试,即统一下单接口的测试。

代码是这样的:

//②、统一下单
$input = new WxPayUnifiedOrder();
$input->SetBody("好");
// $input->SetAttach("123");
$input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));
$input->SetTotal_fee("1");
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
// $input->SetGoods_tag("test");
$input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openId);
$order = WxPayApi::unifiedOrder($input);
echo '<font color="#f00"><b>统一下单支付单信息</b></font><br/>';
printf_info($order);

$order返回错误,提示签名错误,然后我去官网的签名验证工具对比了签名,表示没错,我去检查bug

没发现什么致命错误,换了另一个公众号依然提示签名错误,所以应该还是程序这边的问题。

找了3天都没找到究竟什么原因导致了签名错误,是官方的demo有问题吗?可是我对照了稳当检查了,包括排序,md5后大写,全部都是正确的,依然提示签名错误,只好来请教做过的朋友,给指指路,麻烦了。

<无标签>
举报
IndigoLove
发帖于2年前 14回/4K+阅
共有14个答案 最后回答: 2年前
先把字符串打印出来,看是不是对的,再经过md5加密,我之前也出现过签名错误,我的是因为md5方法写的有问题
--- 共有 1 条评论 ---
IndigoLove我用的是官方的demo MD5完了之后 再转为大写 没错的样子 2年前 回复

统一下单 要提前获取统一下单号,然后根据统一下单号生成订单支付!

如果不明白 可以私信我,或者企鹅:365810157

如果是字段名称,字段值合法的情况下,并且用微信签名工具生成的签名也没错的话,就是支付秘钥不对!微信支付管理里面,支付秘钥重新生成一次!
看看相关配置(主要是支付目录,key等)后,再说别的吧。我没用php做过微信支付,把你最终post过去的数据也比对一下
顶部