分享你我的心得.
共乘一片美好网络.

商户卡劵微信接口记载(不断更新)

微信签名获取平台证书

https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_0.shtml

所函数

时间戳

Function ToUnixTime(strTime,intTimeZone)
If IsEmpty(strTime) or Not IsDate(strTime) Then strTime = Now
If IsEmpty(intTimeZone) or Not isNumeric(intTimeZone) Then intTimeZone = 0
ToUnixTime = DateAdd(“h”,-intTimeZone,strTime)
ToUnixTime = DateDiff(“s”,”1970-1-1 0:0:0″, ToUnixTime)
End Function

随机函数

Function getCode1(iCount1)
Dim arrChar1
Dim j1,k1,strCode1
arrChar1 = “23456789ABCDEFGHJKLMNPQRSTUVWXYZ”‘去掉了数字1和0,字母I和O
k1=Len(arrChar1)
Randomize
For i1=1 to iCount1
j1=Int(k1 * Rnd )+1
strCode1 = strCode1 & Mid(arrChar1,j1,1)
Next
getCode1 = strCode1
End Function

mchid=”1400000000″ ‘服务商户号
A=”GET”‘GET提交方式
B=”/v3/certificates”‘URL去除域名
timestamp=ToUnixTime(now(),+8)&””‘时间戳
nonce_str=getCode1(30)&””‘随机字符串
Datas=A&”\n”&B&”\n”&timestamp&”\n”&nonce_str&”\n\n”

组成提交所需要的字符串

进行私钥签名每个人写法不一样

signature=Encrypt.Sign(Datas,”Null”,Privatekey,”SHA256″,”4.0.30319″)

Datas是上面的字符串

NULL不用管它

Privatekey为apiclient_key.pem证书中(私钥)

除—–BEGIN PRIVATE KEY—–

要中间部分就是Privatekey的值

—–END PRIVATE KEY—–

公钥导出

http://www.metools.info/code/c87.html

用上面的地址导出公钥(复制的时候全部复制)

SHA256为加密方式只能使用这种加密方式

4.0.30319为.net的版本号

查看.net版本信息

文件夹地址栏输入%systemroot%\Microsoft.NET\Framework

验证工具下载

https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/download/Product_5.zip

SHA256这个加密呵呵,一个大坑(别人帮写的)

提交时必须用https模式和证书

这里有个坑

msxml6.dll 错误 ‘80072f0c’

请求证书完成客户验证

加载证书

Set https = Server.CreateObject(“Msxml2.ServerXMLHTTP.6.0”)
https.setOption(2) = 13056
https.setOption(3)=”LOCAL_MACHINE\My\证书名称”
https.setTimeouts 10 * 100, 10 * 100, 10 * 100, 10 * 100

越过好几个坑后感觉见到亮的时

计算签名值,上面也用工具验证过了!继续往下弄

设置http头

然后出现

Http头Authorization值格式错误,请参考《微信支付商户REST API签名规则》

Authorization这块也是个大坑

Authorization后面的格式就修改了N多

始终出错,什么签名不合法

后来是

商户API证书序列号不正确本以为快接近了!修正后还是出错

错误的签名,验签失败

与下面的链接地址一模一样的错误

https://developers.weixin.qq.com/community/pay/doc/0004ae23130ab8b7b08bc95305f400

再来又出了一个什么平台证书获取!生成签名的时候也没说啊!哎!支付证书与平台证书还不一样

后来找资料等都不行,然后我们同事说哦,证书更新过,于是乎我就更新了证书。调用颁发者“Tenpay.com Root CA”这个证书

还是“错误的签名,验签失败”

懵了!不知道如何是好,同事说可以打电话给腾讯,我就打电话,得到与技术在平台沟通的渠道,沟通,说是\n被转义符了,我就开始替换\n是回车或是换行回车CHR(34)不行,然后换行CHR(10),没想到好用了!

就算是完结了!验证签名真的是资料少又少!

赞(0)
未经允许不得转载:小叶白龙博客 » 商户卡劵微信接口记载(不断更新)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址