企业免费自助建站系统,百度联盟广告点击一次收益,怎么样制作微信小程序,做设计都有什么网站1 微信支付的坑
1.1 不能用前端传递过来的金额
订单的商品金额要从数据库获取#xff0c;前端只传商品 id。
1.2 交易类型trade type字段不要传错
v2版API#xff0c;不同交易类型#xff0c;要调用的支付方式也不同。
1.3 二次签名
下单时#xff0c;在拿到预支付交…1 微信支付的坑
1.1 不能用前端传递过来的金额
订单的商品金额要从数据库获取前端只传商品 id。
1.2 交易类型trade type字段不要传错
v2版API不同交易类型要调用的支付方式也不同。
1.3 二次签名
下单时在拿到预支付交易会话标识时要进行二次签名操作。二次签名后的值才能返回给前端使用。
1.4 小程序可绑定到其它公司的商户下
可同时关联到多个商户号 1.5 微信支付的单位是分最小金额是0.01元
支付宝是元。
1.6 做避免重复消费的处理 处理成功之后不要再进行二次处理了那首先是有事务操作。
第一次处理成功后需要更新对应订单的状态。更新完成后下次再处理时直接返回成功不再进行实际业务处理。
也可以拿这个订单号加分布式锁保证对同一个用户同时只能处理一个订单。
1.7 支付结果验签
对支付结果通知一定要拿配置的私钥进行验签处理。
// 处理内部业务逻辑
try {// 支付结果验签boolean valid WXPayUtil.isSignatureValid(map1, weixinpaypartner);if (valid false) {log.info(签名不一致 outTradeNo);return ERROR;} else {//1、更新订单状态dealAfterSuccess(basOrder, time_end, transaction_id, result_code);log.info(验签成功 outTradeNo);result CommUtils.setXml(SUCCESS, OK);log.info(收到异步通知返回微信的内容-- result);return result;}
} catch (Exception e) {e.printStackTrace();return ERROR;
}
不验签也可以继续执行但支付结果页容易被伪造哦
1.8 对支付结果通知处理逻辑中的非事务性操作做操作记录
可能在支付通知后通过小程序给用户发送模板消息通知或公众号消息通知触达。若这时事务处理失败但结果发送成功了会造成啥结果那你下次是否要重新处理这个订单流程在重新处理订单时难道再发一次推送吗肯定不可以。
所以最好拿订单号作为标识判断记录这个订单是否已经有过啥事务性、非事务性操作下次或者是订单补偿时就只处理事务性操作不再处理非事务性操作。
1.9 v2的统一下单的接口
服务号、H5下单和小程序下单都可调用甚至app下单都可以调用。
关注我紧跟本系列专栏文章咱们下篇再续 作者简介魔都架构师多家大厂后端一线研发经验在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。 各大技术社区头部专家博主。具有丰富的引领团队经验深厚业务架构和解决方案的积累。 负责 中央/分销预订系统性能优化 活动券等营销中台建设 交易平台及数据中台等架构和开发设计 车联网核心平台-物联网连接平台、大数据平台架构设计及优化 LLM Agent应用开发 区块链应用开发 大数据开发挖掘经验 推荐系统项目 目前主攻市级软件项目设计、构建服务全社会的应用系统。 参考
编程严选网 本文由博客一文多发平台 OpenWrite 发布