微信支付
微信回调通知给了成功的应答体过了四个小时之后再一次给了通知
public function transfer($batch_name, $out_trade_no, $money, $openid) { $url = 'https://api.mch.weixin.qq.com/v3/transfer/batches'; $pars = []; $pars['appid'] = '*****';//直连商户的appid $pars['out_batch_no'] = $out_trade_no;//商户系统内部的商家批次单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一 $pars['batch_name'] = $batch_name;//该笔批量转账的名称 $pars['batch_remark'] = $batch_name;//转账说明,UTF8编码,最多允许32个字符 $pars['total_amount'] = intval($money * 100);//转账总金额 单位为“分” $pars['total_num'] = 1;//转账总笔数 $pars['transfer_detail_list'][0] = [ 'out_detail_no' => 'transfer' . $out_trade_no, 'transfer_amount' => $pars['total_amount'], 'transfer_remark' => $batch_name, 'openid' => $openid ];//转账明细列表 $token = $this->getToken($pars);//获取token $res = $this->https_request($url, json_encode($pars), $token);//发送请求 $data = json_decode($res, true); return $data; } function https_request($url, $data = null, $token) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, (string)$url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //添加请求头 $headers = [ 'Authorization:WECHATPAY2-SHA256-RSA2048 ' . $token, 'Accept: application/json', 'Content-Type: application/json; charset=utf-8', 'User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36', ]; if (!empty($headers)) { curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); } $output = curl_exec($curl); curl_close($curl); return $output; } public function getToken($pars) { // $url = 'https://api.mch.weixin.qq.com/v3/certificates'; $url = 'https://api.mch.weixin.qq.com/v3/transfer/batches'; $http_method = 'POST';//请求方法(GET,POST,PUT) $timestamp = time();//请求时间戳 $url_parts = parse_url($url);//获取请求的绝对URL $nonce = $timestamp . rand('10000', '99999');//请求随机串 $body = json_encode((object)$pars);//请求报文主体 $stream_opts = [ "ssl" => [ "verify_peer" => false, "verify_peer_name" => false, ] ]; try { $certPem = $this->getCertPem(); $apiclient_cert_path = $certPem['certPem']; $apiclient_key_path = $certPem['keyPem']; $apiclient_cert_arr = openssl_x509_parse(file_get_contents($apiclient_cert_path, false, stream_context_create($stream_opts))); $serial_no = $apiclient_cert_arr['serialNumberHex'];//证书序列号 $mch_private_key = file_get_contents($apiclient_key_path, false, stream_context_create($stream_opts));//密钥 $merchant_id = '******'; $canonical_url = ($url_parts['path'] . (!empty($url_parts['query']) ? "?${url_parts['query']}" : "")); $message = $http_method . "\n" . $canonical_url . "\n" . $timestamp . "\n" . $nonce . "\n" . $body . "\n"; openssl_sign($message, $raw_sign, $mch_private_key, 'sha256WithRSAEncryption'); $sign = base64_encode($raw_sign);//签名 $schema = 'WECHATPAY2-SHA256-RSA2048'; $token = sprintf('mchid="%s",nonce_str="%s",timestamp="%d",serial_no="%s",signature="%s"', $merchant_id, $nonce, $timestamp, $serial_no, $sign);//微信返回token } catch (\Exception $e) { // throw new BaseException(['msg' => $e->getMessage()]); return json(['code'=>1,'msg'=>$e->getMessage()]); } return $token; } /** * 获取cert证书文件 * @return array * @throws BaseException */ private function getCertPem() { // cert目录 $filePath = dirname(__DIR__) . '/public/cert/wechat/'; return [ 'certPem' => $filePath . 'apiclient_cert.pem', 'keyPem' => $filePath . 'apiclient_key.pem' ]; } //在别的方法里调用,报错{code: "INVALID_REQUEST", message: "Http头缺少Accept或User-Agent"} $res = $this->transfer('结算手工费', $out_trade_no, $craft_fee, $openid); return json($res);
商家转账接口transfer_amount字段传的30,商户余额1.98,调用的时候提示资金不足
怎么实现鸿蒙Next拉起微信并在微信内自动打开网页完成支付签约
[图片] 麻烦咨询下,合单支付的订单,退款次数是总的只有50次吗?即使有50个子单,也只能总共退50次?
二手回收行业,在回收机器时希望接微信信用体系,可以直接抵扣\降低用户的回收金额,用于3C数码等机器的回收。
营业执照已经注销掉了,还为什么把商户号不可以注销掉,注销为什么那么复杂,注销不了这个商户号,营业执照早就注销了号几年了,谢谢官方把1492732502这个商户号,给我处理注销掉, [图片]
/v3/profitsharing/orders 小程序交易被冻结,在用户主动/系统自动确认收货后才进行资金结算,详细规则可查看《交易类小程序运营规范》 如何操作? 而且微信公众平台-订单管理,这个分账订单状态是“已发货”,因为是虚拟产品发货选的是“虚拟发货”,这个要等系统自动收货才可以吗? 请问这个状态能查询到吗或者有收货的异步回调通知吗 [图片]
商户发起商家转账请求后,微信支付会持续尝试锁定商户资金。如果超过24小时仍余额不足或因其他原因导致无法转账,商家转账订单将会被关闭。 产品文档中仅说了这个
为什么我调用了传了openid,返回了WAIT_USER_CONFIRM ,而不是用户直接收到钱呢
系统未开启微信红包提现功能
[图片] [图片]
Problem 1 - Root composer.json requires wechatpay/wechatpay 1.3 -> satisfiable by wechatpay/wechatpay[1.3.0]. - wechatpay/wechatpay 1.3.0 requires php >=7.2 -> your php version (7.0.29) does not satisfy that requirement. 目前看要升级公私钥验签php的版本最低是7.2,7.0怎么兼容
激活会员卡:https://api.weixin.qq.com/card/membercard/activate 报错:code = -1, message = system error hint: [fMZDIA04544878] 是什么原因
申请的时候押金填的99,因为业务需求想要提高押金,但是修改后无法使用支付分。请问要如何解决
共享充电宝平台,商户铺货后,可以抽取共享充电宝租借订单分佣。佣金提现功能属于哪个场景?
这个能力不是有了很多年了,sdk还不支持吗?
[图片] 页面上显示:支付功能暂时无法使用,我发下b2b使用普通的支付接口是不可以的。但这个requestMerchantTransfer 接口没有找到对应的说明文档
请求分账API:https://api.mch.weixin.qq.com/secapi/pay/profitsharing <html>\r\n<head><title>400 The SSL certificate error<\/title><\/head>\r\n<body bgcolor=\"white\">\r\n<center><h1>400 Bad Request<\/h1><\/center>\r\n<center>The SSL certificate error<\/center>\r\n<hr><center>nginx<\/center>\r\n<\/body>\r\n<\/html>\r\n 添加分账接收方是可以使用的
给企业新申请的微信商户,要开通微信转账功能,说是2025年1月15日新改版了,然后一步一步进行开通 先选了转账场景,然后就是转账规则和同意事项的页面 [图片] 然后一点提交就要输入操作码和手机验证码 [图片] 等输入后点确认,就直接拒绝了,弹出了错误提示框,当前商户存在异常,暂时无法开通转账功能 [图片] 也查不出原因,无语了