var_dump($platformCertificateFileContent); //打印看下这个值,按报错看应该是没有读取到证书内容
微信支付报错,Cannot load publicKey from(boolean)?我用的PHP 7.3 参考的sdk仓库:https://github.com/wechatpay-apiv3/wechatpay-php 实例化支付对象的时候,需要进行验签的内容,然后使用了 $platformPublicKeyInstance = Rsa::from($platformCertificateFileContent, Rsa::KEY_TYPE_PUBLIC); 结果报错,报错信息如下 Cannot load publicKey from(boolean), please take care about the \$thing input.
2022-08-25你的PHP版本低于7.1.2,顾没有,详细<a href="/community/develop/issue/7151" target="_blank"> #7151 </a>serialNumberHex support 说明。
后台 使用 openssl_x509_parse 解析证书没有serialnumberhex 字段按照官方提供的案例代码, openssl_x509_parse($certFile); 解析出来的内容中没有 serialnumberhex 字段 只有 serialnumber。 请问下这个是什么情况?如何解决? 可能是什么原因引起?
2022-08-04[图片] 这一行说明你用的 $sm3->signFile 签名的摘要不对;另程序异常捕获写法参考如下: try { $res = $instance->chain('')->post([]); } catch ($e) { var_dump((string)$e->getResponse()->getBody()); } Sm3杂凑单文件实现参考这里: https://github.com/TheNorthMemory/wechatpay-php/blob/v1.5/src/Crypto/Sm3.php 使用上类似这里的注视示例: https://github.com/TheNorthMemory/wechatpay-openapi/blob/master/src/V3/NewTaxControlFapiao/FapiaoApplications/UploadFapiaoFile.php#L13-L36 // available since wechatpay/wechatpay:>=1.5.0 $digest = \WeChatPay\Crypto\Sm3::file('file:///path/to/fapiao.pdf'); $media = new \WeChatPay\Util\MediaUtil('file:///path/to/fapiao.pdf'); $json = [ 'sub_mchid' => 'your_sub_mchid', //服务商模式下必传 'file_type' => 'PDF', 'digest_algorithm' => 'SM3', 'digest' => $digest, ]; $media->setMeta(\json_encode($json)); $options = [ 'body' => $media->getStream(), 'headers' => ['Content-type' => $media->getContentType()] ];
使用sdk调用【上传电子发票文件】接口时,无论对错都会提示错误?文档路径:https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_8_14.shtml 代码 [图片] 不管对错,都会有错误提示:Fatal error: in /www/wwwroot/nk/framework/library/WeChatPay02/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 113 参数错的时候,会有这样的提示 [图片] 全部参数都对的话也会提示:Fatal error: in /www/wwwroot/nk/framework/library/WeChatPay02/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 113 只调用图片上传接口的话,不会报错 [图片] [图片]
2022-08-03建议看看 https://www.npmjs.com/package/wechatpay-axios-plugin npm包
微信小程序进行支付下单提示Http头缺少Accept或User-Agent?我用node.js 进行微信小程序下单,源码是 await this.node_req({ url: "https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi", method:"POST", header:{ 'Content-Type': 'application/json', 'Accept': 'application/json', "Authorization": 'authHeader', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36', }, body:JSON.stringify(set.data.payment) }) 返回的是 {"code":"INVALID_REQUEST","message":"Http头缺少Accept或User-Agent"} 这是啥问题?要怎么处理啊?
2022-08-01https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter11_2_1.shtml 这个接口传参是GET方式,而银行卡是密文base64字符串,传输时需要处理特殊字符(一般SDK都会处理)。 PHP参考代码如下: <?php use WeChatPay\Builder; use WeChatPay\Crypto\Rsa; Builder::factory([ 'mchid' => $mchid, 'privateKey' => $privateKey = Rsa::fromPkcs8($merchantPrivateKeyString), 'serial' => $merchantCerificateSerial, 'certs' => [$platformCertificateSerial => $publicKey = Rsa::fromSpki($platformPublicKeyString)], ]) ->chain('v3/capital/capitallhh/banks/search-banks-by-bank-account') ->getAsync([ 'headers' => [ 'Wechatpay-Serial' => $platformCertificateSerial, ], 'query' => [ 'account_number' => Rsa::encrypt('6228481831910000000', $publicKey) ], ]) ->then(fn ($res) => (string)$res->getBody()) ->otherwise(fn ($err) => (string)$err->getResponse()->getBody()) ->then(fn ($str) => fwrite(STDERR, $str)) ->wait(); 打印的json如下: { "data": [ { "account_bank": "农业银行", "account_bank_code": 1005, "bank_alias": "农业银行", "bank_alias_code": "1000009548", "need_bank_branch": false } ], "total_count": 1 }
获取对私银行卡号开户银行API,返回平台私钥解密失败?https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter11_2_1.shtml 为什么这个接口会返回平台私钥解密失败? https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter7_1_1.shtml 二级商户进件接口没有问题,说明平台的公钥和序列号是正确的 https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter11_2_2.shtml 这个接口也没问题 为什么获取对私银行卡号开户银行API就会返回平台私钥解密失败? 是不是电商平台不支持调用这个api接口,还是这个API的签名生成规则不一样?
2022-08-01https://github.com/wechatpay-apiv3/wechatpay-guzzle-middleware 环境要求 我们开发和测试使用的环境如下: PHP 5.5+ / PHP 7.0+guzzlehttp/guzzle ^6.3
wechatpay-php SDK 能不能搞一个兼容低版本的PHP啊包括我在内,应该还有很多人用的5.6版本的PHP要升级支付。怎么整?、
2022-08-01微信小程序搜: 微信收款服务商助手
普通服务商和电商收付通分别有多少种进件方法?普通服务商和电商收付通分别有多少种进件方法? 我目前知道的方法: 普通服务商可以通过服务商后台和API进件 电商收付通可以通过api进件 还有没其他的方法可以进件的?比如小程序之类的,如果有,能否告知小程序名称?谢谢
2022-08-01APIv2退款需要在httpclient加载商户私钥以及商户证书
微信退款API本地好使布置到服务器就提示错误用的微信官方DEMO写的退款功能,本地调试好使布置服务器就提示 System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道。 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) 在 System.Net.HttpWebRequest.GetRequestStream() 在 WxConfig.WxHttpService.Post(String xml, String url, Boolean isUseCert, Int32 timeout) 位置 D:\代码项目\MoveCarTel\WxConfig\WxHttpService.cs: 服务器是微软2019服务器 .net framework4.5 。 代码也加了ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;。 请问到底是哪里出了问题啊。实在找不到了, 支付, 提现都好使。 就到退款不好使了。 哪位大神告诉我下,不胜感激
2022-07-14使用Java加载密钥时,抛出异常InvalidKeyException: Illegal key size受到美国法律的约束,早期Java的运行时限制了JCE支持的密钥长度,即默认不支持256位的AES。解决的方法有三个: (推荐)升级Java 8u162+,默认使用ulimited policyJava 8u151和8u152,可以在你的程序中直接放开策略Security.setProperty("crypto.policy", "unlimited"); 其他版本,下载无限强度权限策略文件补丁包,并使用其中的文件覆盖[代码]$JAVA_HOME/lib/security[代码]目录下的对应的[代码]local_policy.jar[代码] 和[代码]US_export_policy.jar[代码]Java9及以上,均无限制。 https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay7_2.shtml
V3平台证书下载失败CertificateDownloader-1.2.0-jar-with-dependencies.jar,商户号,商户序列号,商户证书私钥,检查过很多遍,没发现问题。初次下载平台证书报错。 [图片]
2022-07-05[图片]
applyment4sub/applyment contact_info openid?问题关于:微信支付 服务商 特约商户 申请单提交 超级管理员 openid https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter11_1_8.shtml 问题:这个 openid 是哪个 openid ?是这个 code 换回来的 openid 吗:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#1 问题:什么时候这个 openid 是必填的?
2022-06-28