微信app支付php开发
前几天做微信app支付,遇到了支付失败的问题,app进行支付的时候,返回-1。查了好多资料,没找到。后来经过排查,是因为签名的问题。不多说,直接上代码。服务器端的demo版本是v3。
require(dirname(dirname(__FILE__))."/lib/WxPay.Api.php");
//生成订单
$out_trade_no = trim($_POST['orderid']);
//总金额(1表示1分钱)
$total_fee = 100*$price;
//商品描述
$body = '微信支付人民币 '.$price;
//回调地址
$notify_url = 'http://www.xxxx.com/notify_recharge.php';
//微信支付下单
$input = new WxPayUnifiedOrder();
$input->SetBody($body);
$input->SetOut_trade_no($out_trade_no);
$input->SetTotal_fee($total_fee);
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetNotify_url($notify_url);
$input->SetTrade_type("APP");
$input->SetProduct_id($total_fee);
$unifiedOrderResult = WxPayApi::unifiedOrder($input);
//获取下单信息
$data = array();
$data = array(
"appid" => $unifiedOrderResult['appid'],
"partnerid" => $unifiedOrderResult['mch_id'],
"prepayid" => $unifiedOrderResult['prepay_id'],
"noncestr" => $unifiedOrderResult['nonce_str'],
"timestamp" => (string)$this->nowtime,
'package' => 'Sign=WXPay',
);
//将下单获取的信息重新签名 demo没有这一步,为出错的原因
$data['sign'] = $this->MakeSign($data);
$data["orderid"] = $out_trade_no;
$data["price"] = $total_fee;
$data["url"] = $notify_url;
echo json_encode($data);
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://www.cnblogs.com/facetwitter/p/5063204.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix