解决方案

微信支付的大致流程

seo靠我 2023-09-23 00:59:59

文章目录

流程图:微信支付1.微信支付业务-商户需要注册微信支付业务2. 微信支付业务-商户注册微信支付业务2.1导入微信支付Maven依赖 2.2 创建微信支付配置类:2.2和微信的接SEO靠我口进行相关的参数设置和获取微信支付链接2.21 支付回调接口,支付成功前端面试进行提示,支付成功创建自己的url,PayController类:2.22添加订单快照成功生成支付链接

流程图:

微信支付

为商SEO靠我家提供代理收款服务

1.微信支付业务-商户需要注册微信支付业务

商户编号:3454563 商户账号:23435商户编号appID: werselfjldsjhtoieiurt0商户密钥:sSEO靠我dfsdlkfjdslkjfFGFGDSRTG89

2. 微信支付业务-商户注册微信支付业务

支付订单,并不是用户提交的商品订单,而是商户向微信支付平台申请的支付链接

2.1导入微信支付Maven依赖

wxpSEO靠我ay的maven依赖生成

<!-- https://mvnrepository.com/artifact/com.github.wxpay/wxpay-sdk --> <dependenSEO靠我cy> <groupId>com.github.wxpay</groupId> <artifactId>wxpay-sdk</artifactId> <SEO靠我version>0.0.3</version> </dependency>

2.2 创建微信支付配置类:

创建一类,实现WxPayConfig接口

重写三分方法,分别设置AppID\商户IDSEO靠我\商户密钥

package com.qfedu.fmmall.config; import com.github.wxpay.sdk.WXPayConfig; impSEO靠我ort java.io.InputStream; public class MyPayConfig implements WXPayConfig { //商户账号 SEO靠我 @Override public String getAppID() { return "wx632c8f211f8122c6"; } SEO靠我 //商户appID @Override public String getMchID() { return "1497984412"; SEO靠我 } @Override public String getKey() { return "sbNCm1JnevqI36LrEaxFwcSEO靠我aT0hkGxFnC"; } //商户的密钥 @Override public InputStream getCertStream() SEO靠我{ return null; } @Override public int getHttpConnectTimeoutMs() { SEO靠我 return 0; } @Override public int getHttpReadTimeoutMs() { reSEO靠我turn 0; } } 2.2和微信的接口进行相关的参数设置和获取微信支付链接 2.21 支付回调接口,支付成功前端面试进行提示,支SEO靠我付成功 创建自己的url,PayController类: package com.qfedu.fmmall.controller; import orSEO靠我g.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotSEO靠我ation.RequestMapping; import org.springframework.web.bind.annotation.RestController; SEO靠我 @RestController @RequestMapping("/pay") public class PayController { @PostSEO靠我Mapping("/success") public void success(){ } } 2.22添加订单快照成功生成支付链接SEO靠我

必须设置的配置参数:

// 必填选项 用于设置支付完成时的回调方法接口 data.put("notify_url","/pay/success"); package cSEO靠我om.qfedu.fmmall.controller; import com.github.wxpay.sdk.WXPay; import com.qfedu.fmmSEO靠我all.config.MyPayConfig; import com.qfedu.fmmall.entity.Orders; import com.qfedu.fmmaSEO靠我ll.service.OrderService; import com.qfedu.fmmall.vo.ResultStatus; import com.qfedu.fSEO靠我mmall.vo.ResultVO; import io.swagger.annotations.Api; import org.springframework.beaSEO靠我ns.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; SEO靠我import java.sql.SQLException; import java.util.HashMap; import java.util.List; SEO靠我 import java.util.Map; @RestController @CrossOrigin @RequestMapping("/ordSEO靠我er") @Api(value = "提供订单相关的接口",tags = "订单管理") public class OrderController { SEO靠我@Autowired private OrderService orderService; @PostMapping("/add/{cids}") pSEO靠我ublic ResultVO add(@PathVariable("cids") List<Integer> cids, @RequestBody Orders orders){ SEO靠我 ResultVO resultVO=null; // 测试用的OrderId try { Map<String, String> ordSEO靠我erInfo = orderService.addOrder(cids, orders); String orderId=orderInfo.get("orderId"); SEO靠我 // 订单快照创建成功,申请支付链接 HashMap<String,String> data=new HashMap<>(); // 设置当前订单信息 SEO靠我 data.put("body",orderInfo.get("productNames")); //商品描述 data.put("out_trade_no",orderIdSEO靠我);//使用当前用户订单编号作为当前支付交易的交易编号 data.put("fee_type","CNY"); //支付币种 data.put("total_fee",SEO靠我 orders.getActualAmount()+""); //支付金额 data.put("trade_type","NATIVE");//交易类型 // 必填选SEO靠我项 用于设置支付完成时的回调方法接口 data.put("notify_url","/pay/success"); WXPay wxPay=new WXPay(new SEO靠我MyPayConfig()); Map<String, String> resp = wxPay.unifiedOrder(data); // 把微信支付平台生成的链SEO靠我接获取到 orderInfo.put("payUrl",resp.get("code_url")); resultVO=new ResultVO(ResultStatuSEO靠我s.OK,"提交订单成功!",orderInfo); System.out.println(resp); // code_url -> weixin://wxpay/SEO靠我bizpayurl?pr=Iv5Fsq6zz } catch (SQLException e) { resultVO= new ResultVO(ResultStatSEO靠我us.NO,"下单失败",null); } catch (Exception e) { e.printStackTrace(); } SEO靠我 return resultVO; } }
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2