微信支付invalid total_fee 的报错

本文详细解释了在使用微信支付接口时如何正确处理订单金额,避免因小数点导致的问题。关键在于理解微信支付系统以分为单位的要求,通过在提交前将金额乘以100来确保交易顺利。

 

因为我的测试商品是0.01的

原因是微信支付的金额是不能带小数点的

直接在提交的时候 乘以 100操作 ,因为里面设置参数的时候是 以分为单位的

    [packageParams setObject: price       forKey:@"total_fee"];       //订单金额,单位为分

### PHP 实现微信支付 H5 V3 #### 准备工作 为了成功集成微信支付H5 V3,在PHP环境中需完成如下准备工作: - 获取商户号(`mch_id`)、API密钥(`api_key`)以及V3 API密钥(`api_v3_key`) - 下载并配置证书文件路径(`cert_path`), 包括私钥和公钥 - 设置回调通知URL (`notify_url`) - 安装必要的依赖库,如cURL用于发起HTTP请求[^1] #### 创建预订单接口调用实例 创建预订单是启动支付流程的第一步。下面是一个简单的PHP函数来构建此过程。 ```php <?php function createPreorder($total_fee, $out_trade_no){ // 构建请求体参数 $data = [ 'appid' => 'YOUR_APPID', 'mchid' => 'YOUR_MCH_ID', 'description' => '商品描述', 'out_trade_no'=> $out_trade_no, "time_expire"=> date('YmdHis', strtotime('+1 hour')), "amount"=>[ "total"=>$total_fee * 100,//单位转换成分为整数形式 "currency"=>"CNY" ], "scene_info"=>[ "payer_client_ip"=>$_SERVER['REMOTE_ADDR'], "device_type"=>"WEB", "h5_info"=>["type"=>"Wap"] ] ]; // 将数据编码为JSON字符串,并设置签名算法等必要头信息 $json_data=json_encode($data); $url="https://api.mch.weixin.qq.com/v3/pay/transactions/h5"; // 使用curl发送POST请求... } ?> ``` #### 处理响应与生成前端跳转链接 当收到成功的预付单返回后,则可以解析其结果以获取交易会话标识符(`prepay_id`),进而构造最终的重定向地址供浏览器访问。 ```php // 假设已获得$prepay_id变量存储着有效的预付款ID $h5PayUrl = sprintf( 'weixin://wxpay/bizpayurl?sign=%s&prepay_id=%s&package=Sign=WXPay', generateSignature(), // 自定义方法生成签名 urlencode($prepay_id) ); header("Location: {$h5PayUrl}"); exit(); ``` #### 验证服务器端的通知消息 每当发生状态变化时(比如支付成功),微信将会向指定的`notify_url`推送事件更新。因此需要编写逻辑处理这些异步通知。 ```php <?php // 解析来自微信服务器的数据包... if (verifyNotification()) { // 自定义验证函数 file_put_contents('./log.txt',"Payment received", FILE_APPEND | LOCK_EX ); } else { http_response_code(400); die('Invalid signature'); } http_response_code(200); echo json_encode(['return_code'=>'SUCCESS']); ?> ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值