app用户微信支付-Java后端

本文详细介绍了app用户使用微信支付的Java后端实现步骤,包括接收到用户支付请求后调用微信支付统一下单接口,生成签名,将预付单数据传输给APP,以及如何处理支付通知。关键步骤包括统一下单、支付通知接收,遵循微信支付的交互时序。
摘要由CSDN通过智能技术生成

app用户微信支付-Java后端

以下是微信官方的交互时序图,统一下单API、支付结果通知API和查询订单API等都涉及签名过程,调用都必须在商户服务器端完成。
在这里插入图片描述
商户系统和微信支付系统主要交互说明:
步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。

步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。

步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式为Sign=WXPay

步骤4:商户APP调起微信支付。

步骤5:商户后台接收支付通知。

下面来看微信接口

微信官方API文档

一、设置必要参数

 public static final String PATERNERKEY = "";//商家的密钥
    public static final String APP_ID = "";//APPID
    public static final String MINI_ID = "";//小程序ID
    public static final String MCH_ID = "";//商户号
    public static final String FEE_TYPE = "CNY";//货币类型,人民币
    private String NOTIFY_URL = "";//程序后台地址
     public static final String TRADE_TYPE = "APP";//支付类型(APP)
    public static final String JSAPI_TRADE_TYPE = "JSAPI";//支付类型(小程序)

二、拉取微信预付单

public Map wechatPay(Map inDTO){
   
	Map outDTO=new HashMap();//创建返回对象
	//.......省略参数校验
	/*主要参数有:
	* total_fee 金额,传入单位(元)
	* userId  程序用户ID,用于记录订单
	* buyType  购买类型 ,可不用
	* buyGoodsId 商品ID,自定义
	* body 商品描述
	* attach 附加数据
	*/
	 // 1.0 拼凑需要的参数
        String appid = APP_ID; // 应用ID
        String mch_id = MCH_ID; // 商户号
        String nonce_str = WXPayUtil.generateNonceStr(); // 生成随机数
        String body = inDTO.get("body") == null ? "":inDTO.get("body").toString();//商品描述
        String attach = inDTO.get("attach") == null ? "":inDTO.get("attach").toString();//附加数据
        String out_trade_no = WXPayUtil.generateNonceStr(); // 生成商户订单号
        String fee_type = FEE_TYPE;//货币类型
        Double totalFee=Double.parseDouble(inDTO.get("total_fee").toString());
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值