【微信】微信下单支付开发小结(服务端)

这篇文章出现也算是机缘巧合,去年年初,还在上家公司的时候,由于java后端工作量大抽不出人员进行微信支付开发的工作,我就硬着头皮上了,用nodejs (expressjs)+ mongodb 开发完成,迭代修复了几次bug,要不就没缘分给大家分享了。因为涉及到money 所以这块我尽可能把容易出问题的地方说下。

步骤大概是这样的
1、下单:携带自己的订单id [‘out_trade_no’]
2、下单成功之后:记录自己的订单id,用于后面的支付成功的状态更新
3、等待微信端支付:支付成功之后 会调用 [‘notify_url’] 回调地址
4、支付成功回调接口:携带 [‘out_trade_no’] 更新支付状态

全程支付都是xml

  • 需要用 xml2js
	js2xmlparser.parse("xml", json);  // json to xml
	js2xmlparser.parseString(data, callback); // xml to json
下单部分,可以看下官方文档很清楚

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1

这里给大家提供个方法
keystring设置路径:微信商户平台(pay.weixin.qq.com)–>账户设置–>API安全–>密钥设置

function sign(json) {
	let t = crypto.createHash("md5");
	var item = {}
	Object.keys(json).sort().map(function(key) {
		item[key] = json[key];
	});
	var url = decodeURIComponent(querystring.stringify(item) + "&key=[keystring]");
	t.update(url, "utf8", "hex");
	item["sign"] = t.digest("hex").toUpperCase();
	return item;
};
  • 注意有顺序
支付成功 其实没有什么太注意的地方了

就是在响应的时候

成功
res.send("<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>");
失败
res.send("<xml><return_code><![CDATA[ERROR]]></return_code></xml>");

前端部分https://blog.csdn.net/ihtml5/article/details/87965682

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值