微信沙盒支付碰到的坑

微信文档说, 正式环境跟测试环境的是一致的, 其实有很多坑
特别是第二个. 百度,谷歌都用了, 没人说明

  1. 沙箱支付金额(5000)无效,请检查需要验收的case

     解决:金额只能是 1.01 和 1.0.2
    
  2. [请确认请求参数是否正确param out_trade_no invalid]

    碰到这个不出意外应该是直接用的官方支付的示例, 
    代码在订单异步回调的时候, 通过transaction_id 或者 out_trade_no查询订单, 
    生产环境没问题, 可以只通过transaction_id 过检测
    但是沙盒环境, 则必须有 out_trade_no
    

    上代码

	//  查询订单  把第三个参数 $out_trade_no 加上
	public function Queryorder($transaction_id,$config,$out_trade_no=false)
	{
		$input = new \WxPayOrderQuery();
		$input->SetTransaction_id($transaction_id);
		if( $out_trade_no!==false ) {
            $input->SetOut_trade_no($out_trade_no);  
        }

		$result = \WxPayApi::orderQuery($config, $input);
//		Log::DEBUG("query:" . json_encode($result));
		if(array_key_exists("return_code", $result)
			&& array_key_exists("result_code", $result)
			&& $result["return_code"] == "SUCCESS"
			&& $result["result_code"] == "SUCCESS")
		{
			return true;
		}
		return false;
	}
// 这个方法里面
public function NotifyProcess($objData, $config, &$msg) {
	//  加上第三个参数 $data['out_trade_no']
	if(!$this->Queryorder($data["transaction_id"],$config,$data['out_trade_no'])){
            \Log::DEBUG("微信支付回调异常, 订单查询失败,查询订单号:".$data["transaction_id"]);
			return false;
		}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值