美文网首页
微信支付计划更换服务器证书:调用微信支付沙箱环境的API验证

微信支付计划更换服务器证书:调用微信支付沙箱环境的API验证

作者: AmeeLove | 来源:发表于2018-04-03 11:40 被阅读303次

    验证证书

    由于SSL/TLS协议有多种实现版本(OpenSSL, NSS, GnuTLS, JSSE, Schannel等),且在不同实现版本和操作系统中管理权威机构根CA证书的策略不一样,应用程序使用SSL/TLS的方法也存在差异。

    为了确保微信支付更换服务证书后,不影响商户的正常交易。下面提供了两种方式供商户提前验证客户端是否支持了DigiCert的证书。

    如你的验证结果为无影响,可忽略安装证书部分的内容。

    方式一:调用微信支付沙箱环境的API接口验证

    微信支付已经将新的服务器证书部署到了沙箱域名(apitest.mch.weixin.qq.com), 由于服务器证书是支持多域名的,API域名(api.mch.weixin.qq.com)与沙箱域名(apitest.mch.weixin.qq.com)使用的是同一张证书。如果使用沙箱环境的接口能调用成功,通常表明客户端支持微信支付新的服务器证书。

    API接口调用说明:

    | 请求Url | https://apitest.mch.weixin.qq.com/sandboxnew/pay/getsignkey |
    | 是否需要证书 | 否 |
    | 请求方式 | POST |
    | 请求格式 | XML |

    请求参数:

    | 字段名 | 字段 | 必填 | 示例值 | 类型 | 说明 |
    | 商户号 | mch_id | 是 | 1305638280 | String(32) | 微信支付分配的微信商户号 |
    | 随机字符串 | nonce_str | 是 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | String(32) | 随机字符串,不长于32位 |
    | 签名 | sign | 是 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | String(32) | 签名结果,详见签名生成算法 |

    返回参数:

    | 字段名 | 字段 | 必填 | 示例值 | 类型 | 说明 |
    | 返回状态码 | return_code | 是 | SUCCESS | String(16) | SUCCESS/FAIL |
    | 返回信息 | return_msg | 否 | 签名失败 | String(128) | 返回信息,如非空,为错误原因 ,签名失败 ,参数格式校验错误 |

    以下字段在return_code 为SUCCESS的时有返回。

    | 字段名 | 字段 | 必填 | 示例值 | 类型 | 说明 |
    | 商户号 | mch_id | 是 | 1305638280 | String(32) | 微信支付分配的微信商户号 |
    | 沙箱密钥 | sandbox_signkey | 否 | 013467007045764 | String(32) | 返回的沙箱密钥 |

    当返回结果return_code为“SUCCESS”,说明当前客服端已支持DigCert证书,反之则需要根据安装证书部分的指引,升级证书。

    以上都是官方文档

    生成签名

    https://pay.weixin.qq.com/wiki/tools/signverify/

    image.png

    登录服务器执行

    echo '<xml><mch_id>商户名</mch_id><nonce_str>ibuaiVcKdpRxkhJA</nonce_str><sign>877DD314109945423A7348FA6CD320D5</sign></xml>'|curl -X POST -H 'Content-type:text/xml' -d @- https://apitest.mch.weixin.qq.com/sandboxnew/pay/getsignkey
    

    结果

    [oper@localhost ~]$ echo '<xml><mch_id>商户名</mch_id><nonce_str>ibuaiVcKdpRxkhJA</nonce_str><sign>3B08D7B9E88FD851AEC4F3CCD369387E</sign></xml>'|curl -X POST -H 'Content-type:text/xml' -d @- https://apitest.mch.weixin.qq.com/sandboxnew/pay/getsignkey
    <xml>
      <return_code><![CDATA[SUCCESS]]></return_code>
      <return_msg><![CDATA[ok]]></return_msg>
      <sandbox_signkey><![CDATA[1e2b64396824957d25838f4afe8b41f5]]></sandbox_signkey>
    </xml>[oper@localhost ~]$ 
    
    
    image.png

    表示商户服务器支持新的证书。

    相关文章

      网友评论

          本文标题:微信支付计划更换服务器证书:调用微信支付沙箱环境的API验证

          本文链接:https://www.haomeiwen.com/subject/mayqhftx.html