微信支付ASP下证书安装说明

之前写过一篇文章:ASP微信支付类,文章中提到安装证书的问题。 增加了 一台服务器部署 多个 微信支付站点的方法,请翻阅到文章底部。没有做详细的说明(微信支付/服务号 怎么配置?),现在将详细安装的方法整理了一遍,具体步骤如下:

1、首先需要安装证书

到微软官方下载winhttpcertcfg.exe

下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=19801

使用说明:https://msdn.microsoft.com/en-us/library/aa384088.aspx#_using

选择一个位置安装即可,为了方便输入,建议安装到:C:\cert_tools\

2、安装证书

安装第一步的工具后,执行以下命令,即可安装证书成功。
假如 证书工具安装在C:\cert_tools\,证书放在 D:\Project\WechatASP

2.1、导入证书

C:\cert_tools\winhttpcertcfg -g -i "D:\Project\WechatASP\apiclient_cert.p12" -c LOCAL_MACHINE\My -a "Network Service" -p 微信商户ID

如果成功会提示:

Microsoft (R) WinHTTP Certificate Configuration Tool
Copyright (C) Microsoft Corporation 2001.

Imported certificate:
SN=12xxxxxx
CN=***有限公司
OU=MMPay
O=Tencent
L=Shenzhen
S=Guangdong
C=CN

2.2、设置 Network Serivce 拥有证书使用权限

::下面的命令根据 申请日志选择,只需要执行一个就可以

::新商户执行
C:\cert_tools\winhttpcertcfg -g -c LOCAL_MACHINE\My -s 微信商户ID -a "Network Service"
::老商户执行
C:\cert_tools\winhttpcertcfg -g -c LOCAL_MACHINE\My -s "MMPay" -a "Network Service"

如果成功会提示:

Microsoft (R) WinHTTP Certificate Configuration Tool
Copyright (C) Microsoft Corporation 2001.

Matching certificate:
SN=12xxxxxx
CN=***有限公司
OU=MMPay
O=Tencent
L=Shenzhen
S=Guangdong
C=CN

Private key access has already been granted for account:
    NT AUTHORITY\NETWORK SERVICE

2.3、设置 Everyone 拥有证书使用权限

::下面的命令根据 申请日志选择,只需要执行一个就可以

::新商户执行
C:\cert_tools\winhttpcertcfg -g -c LOCAL_MACHINE\My -s 微信商户ID -a "EveryOne"
::老商户执行
C:\cert_tools\winhttpcertcfg -g -c LOCAL_MACHINE\My -s "MMPay" -a "EveryOne"

如果成功会提示:

Microsoft (R) WinHTTP Certificate Configuration Tool
Copyright (C) Microsoft Corporation 2001.

Matching certificate:
SN=12xxxxxx
CN=***有限公司
OU=MMPay
O=Tencent
L=Shenzhen
S=Guangdong
C=CN

Granting private key access for account:
    \Everyone

3、一台服务器系统 安装多个微信支付系统 的方法

请升级程序到最新的版本:https://gitee.com/mqycn/WechatASP,修改 order/payconfig.asp 中的 CertName 属性的值 为
2.3、设置 Everyone 拥有证书使用权限 部分中的 SN 的值(12xxxxxx),以上面的证书为例:

pay.CertName    = "12xxxxxx" '如果本服务器只有一个站点使用微信支付,无须修改。部署多套请参考:http://www.shiekolong541.icu/p/winhttpcertcfg-mmpay

如果是2018-11-22之前的版本,请参考教程:https://gitee.com/mqycn/WechatASP/issues/IOXBW

如果 Win2003 没有开启自动更新,会因为win2003及其早期版本不支持SHA2,导致HTTPS交互失败,需要打上968730的补丁后才可以使用。

原因地址:https://support.microsoft.com/zh-cn/help/968730/windows-server-2003-and-windows-xp-clients-cannot-obtain-certificates
补丁地址:https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2013/ms13-095

10 thoughts on “微信支付ASP下证书安装说明

  1. 杨小山

    请问如果有二个网站需要安装证书,怎么办,会不会冲突呢,因为证书名都是MMpay,如何解决,能否回复一下。

  2. 苗 启源 文章作者

    杨小山 请问如果有二个网站需要安装证书,怎么办,会不会冲突呢,因为证书名都是MMpay,如何解决,能否回复一下。

    现在增加了:3、一台服务器系统 安装多个微信支付系统 的方法

  3. 绍阳

    请问把路径统一修改可以用吗,现将整个目录放到某站点的子目录中使用。二微码扫码后没有返回值,LOG日志文件也没有更新,{“status”:false} ,问下是什么情况,搞了两天了还没有弄好

  4. 苗 启源 文章作者

    由绍阳发表在《微信支付ASP下证书安装说明》

    请问把路径统一修改可以用吗,现将整个目录放到某站点的子目录中使用。二微码扫码后没有返回值,LOG日志文件也没有更新,{“status”:false} ,问下是什么情况,搞了两天了还没有弄好

    在前 日志路径写死了,如果 不安装到默认路径 会收不到通知,现在 gitee中 最新的代码已经修复此bug

  5. 苗 启源 文章作者

    陈:可以部署多套,但是如何安装多个证书呢?!证书名是一样的MMPAY。

    证书名,可以直接用 商户ID,请见文章底部:3、一台服务器系统 安装多个微信支付系统 的方法

  6. Pingback引用通告: ASP微信支付 使用说明 | 启源的部落格

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据