- 域名认证过期,马上续费后 微信中任然无法使用问题?其他地方可以打开!
域名heper.cn 29号凌晨过期 29号8点~9点续费成功,10点左右PC可以访问到wz.heper.cn 然而到今天30号 还是显示 该公众号提供的服务出现故障,请稍后再试
2020-10-30 - 应答的微信支付签名验证失败?使用的是官方demo,发送代金券,发送成功但try 中却拦截提示这个?
[图片] 上代码 其中 商户API证书序列号 是在 在微信支付平台->api安全->查看证书中获取到的 能成功说明这个没问题 但现在却提示这个 新证书好几天前就更换的,同时使用新证书正常调用v2的支付和企业付款 我感觉我的代码没什么毛病啊,直接的官方demo 。 希望官方能出来说明一下! <?php require 'vendor/autoload.php'; use WechatPay\GuzzleMiddleware\WechatPayMiddleware; use WechatPay\GuzzleMiddleware\Util\PemUtil; use GuzzleHttp\HandlerStack; use GuzzleHttp\Client; class pay_v3 { public function my_send_cash_coupon($arr) { global $_W,$_GPC; //载入日志函数 if($arr['s_token']!='yft'){ return false; } // 商户相关配置 $merchantId = $arr['mchid'];// 商户号 $merchantSerialNumber = $arr['serial_no']; // 商户API证书序列号 $merchantPrivateKey = PemUtil::loadPrivateKey(MODULE_ROOT.'/cert/'.$_W['uniacid'].'.apiclient_key.pem'); // 商户私钥 // 微信支付平台配置 $wechatpayCertificate = PemUtil::loadCertificate(MODULE_ROOT.'/cert/'.$_W['uniacid'].'.apiclient_cert.pem'); // 微信支付平台证书 // 构造一个WechatPayMiddleware $wechatpayMiddleware = WechatPayMiddleware::builder() ->withMerchant($merchantId, $merchantSerialNumber, $merchantPrivateKey) // 传入商户相关配置 ->withWechatPay([ $wechatpayCertificate ]) // 可传入多个微信支付平台证书,参数类型为array ->build(); // 将WechatPayMiddleware添加到Guzzle的HandlerStack中 $stack = GuzzleHttp\HandlerStack::create(); $stack->push($wechatpayMiddleware, 'wechatpay'); // 创建Guzzle HTTP Client时,将HandlerStack传入 $client = new GuzzleHttp\Client(['handler' => $stack]); //组装对应的链接 $data=array(); $data['stock_id']=$arr['couponcardid']; $data['out_request_no']=$arr['mchid']. date('Ymd') .'hxqlq'. $arr['awid']; $data['appid']=$arr['mch_appid']; $data['stock_creator_mchid']=$arr['mchid']; if(!empty($arr['coupon_value']) ){ $data['coupon_value']=$arr['coupon_value']; } if(!empty($arr['coupon_minimum']) ){ $data['coupon_minimum']=$arr['coupon_minimum']; } // 接下来,正常使用Guzzle发起API请求,WechatPayMiddleware会自动地处理签名和验签 try { $resp = $client->request('POST', 'https://api.mch.weixin.qq.com/v3/marketing/favor/users/'.$arr['openid'].'/coupons', [ 'json' => $data, 'headers' => [ 'Accept' => 'application/json' ] ]); if ($resp->getStatusCode() < 200 || $resp->getStatusCode() > 299) { return array('errno'=>$resp->getStatusCode(),'message'=>$resp->getBody()); } $list = @json_decode($resp->getBody(), true); return $list; } catch (\Throwable $e) { //} catch (RequestException $e) { // 进行错误处理 $error=-5; var_dump('错误处理'); $errinfo=$e->getMessage(); if ($e->hasResponse()) { $errinfo.= "\n".$e->getResponse()->getStatusCode().' '.$e->getResponse()->getReasonPhrase(); $errinfo.= "\n".$e->getResponse()->getBody(); } var_dump($errinfo); exit(); return array('errno'=>$error,'message'=>$errinfo); } return false; } }
2020-06-09