微信小程序支付(Java)

本文介绍了微信小程序支付的步骤,包括生成商户订单、调用统一下单API、获取prepayId等关键环节,并提醒开发者注意HTTPS要求和签名算法。同时,提供了部分代码示例作为参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相信进行过微信公众号支付的同学对于微信小程序支付的开发上手很快,如下是微信官方对三种接入方式的对比


注意坑一:发起支付必须是HTTPS

流程

然后我们整理下发起订单的思路。如下是官方给的流程图,发起支付已经做了标注。


由此可见,服务器端发起订单需要以下五小步,我们来各个击破。

第一步:获取openid

第二步:生成商户订单

第三步:调用支付统一下单API

第四步:获取预支付会话标识 prepayId

第五步:将组合数据签名并返回

第一步:获取openId(跳过)

获取openId不做赘述,自行百度。

第二步:生成商户订单

这里由我们系统内部生成。官方API如下(官方建议用当前系统时间加随机序列来生成订单号):


生成商户订单号代码如下(仅供参考)

public static String getRandomOrderId() {
        Random random = new Random(System.currentTimeMillis());
        int value = random.nextInt();
        while (value < 0) {
            value = random.nextInt();
        }
        return value + "";
    }
第三步:调用统一下单支付API

下面进行第三步调用支付统一下单API(将必传参数整理成xml格式,发送给下单url):

注意坑二:参数名按照字典序排序、参数值为空不参与签名、区分大小写、sign参数不参与签名!

注意坑三:在结尾拼接要key、进行签名运算后的sign要转化成大写!详见官方“签名算法说明”

官方API说明:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1

签名算法说明:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_3

整理的格式如下,然后发送到下单url。代码如下

<xml>
   <appid>wx2421b1c4370ec43b</appid>
   <attach>支付测试</attach>
   <body>JSAPI支付测试</body>
   <mch_id>10000100</mch_id>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值