现在微支付的需求越来越多,最近刚接到一个需要微支付的项目,于是身为程序猿的我拿到最新的微信支付接口文档(3.3.6)就开始研究微信支付。本以为应该跟支付宝差不多的感觉结果被坑了。恕在下无能,在微信签名弄了两天都没有弄好,一直看着报错签名验证错误,查看网上分享的都是2.X的版本,方法完全变了,于是只能硬着头皮自己细读文档,检查任何一个可能会出现的错误。还是没有解决问题。后来在网上遇到一个大侠,我把我的代码发到给他,然后我按照他告诉我的方式修改,到现还是没有实现。 希望哪位大侠能帮助我一下。
我把问题详细描述一下:
1. 我已经实现了前面的几个步骤,能拿到预支付 ID:prepay_id;
2. 当我利用JSAPI 支付,提示“该公众号支付签名无效,无法发起该笔交易”。文档中的签名没有详细说明,问了好多朋友和网友,都遇到类似的问题。希望腾讯能把签名的这个地方的文档写的详细点。能按照腾讯的文档做出来的。那简直就是牛人。警告腾讯的人(幸亏当前没去腾讯),他妈的。做人要有厚道,那么粗糙的文档就拿出来,不是大公司的作为。
我的签名如下:
function getAppId() {
return $("#appId").val();
}
function getSignType() {
return "MD5";
}
function getPackage() {
return "prepay_id=" + $("#prepay_id").val();
}
var signString;
function getSign() {
signString = "appId=" + getAppId() + "&nonceStr=" + $("#nonceStr").val() + "&package=" + getPackage() + "&signType=" + getSignType() + "&timeStamp=" + getTimeStamp() + "&key=" + getKey();
return CryptoJS.MD5(signString).toString().toUpperCase();
}
我也附上我调试打印的日志.
经过大侠们的指点,今天早上终于成功。谢谢各位大侠。最后还是希望腾讯这样的大公司把文档写的详细点。不要坑害人。