手把手教你完成微信公众号支付

微信公众号支付是我接触微信支付最复杂的一个了,当时总共弄了五天才弄好,很惭愧.

1,首先咋们还是先看看图,图看懂了一切都好说

微信åç½é¡µæ¯ä»æ¶åºå¾

2,整个流程大概弄清楚了,需要做准备工作了

code -------------- 用户点击 充值 需要访问微信服务器 获取 code,然后服务器接收Code,此处特别注意,这个code用来获取openId的重要参数

/**
     * 用户点击充值 获取Code
     * @param request
     * @return
     */
    @RequestMapping(value = "getCode")
    public String getCode(HttpServletRequest request) {
        String code = request.getParameter("code");
        return "redirect:http://localhost:8080/faint-service/static/h5/topup.html?code=" + code;
    }

openId   --------------此参数是  调用同意下单接口  必要参数 

APIKEY ---------  支付秘钥(微信商户平台可查,需要自己设置)

appid -----   商户ID(微信商户平台可查)

body-------   商品名称

mch_id -----     支付商户号(微信商户平台可查)

nonce_str ---------- 随机字符串

/**
     * 获取随机字符串 Nonce Str
     *
     * @return String 随机字符串
     */
    public static String generateNonceStr() {
        char[] nonceChars = new char[32];
        for (int index = 0 ; index < nonceChars.length ; ++index) {
            nonceChars[index] = SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
        }
        return new String(nonceChars);
    }

out_trade_no------------   订单号

spbill_create_ip ------------请求IP

/**
     * 获取用户实际ip
     * @param request
     * @return
     */
    public static String getIpAddr(HttpServletRequest request) {
        String ipAddress = request.getHeader("x-forwarded-for");
        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getRemoteAddr();
            if (ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")) {
                //根据网卡取本机配置的IP  
                InetAddress inet = null;
                try {
                    inet = InetAddress.getLocalHost();
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                }
                ipAddress = inet.getHostAddress();
            }
        }
        //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割  
        if (ipAddress != null && ipAddress.length() > 15) { //"***.***.***.***".length() = 15  
            if (ipAddress.indexOf(",") > 0) {
                ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
            }
        }
        return ipAddress;
    }

total_fee------------ //,字符串类型,获取金额,单位分

trade_type -------------------//支付类型,公众号就是  "JSAPI"

notify_url   ----------------- //此路径是微信服务器调用支付结果带了一大批参数多次请求

 

3,废话不多说,上代码吧

/**
     * 微信公众号充值金币业务逻辑
     * @param request
      * @param code 微信返回的"code"
     * @param rechargeNumber  充值的用户ID
     * @param rechargeId 由 金钱+金币个数构成的字符串
     * @return
     */
    @RequestMapping(value = "goldOrders", method = RequestMethod.GET)
    @ResponseBody
    public Map goldOrders(HttpServletRequest request, String code, Integer rechargeNumber, String rechargeId) {

        t

### 下载并安装 MATLAB 图像处理工具箱 为了获取最新的 MATLAB 及其图像处理工具箱,建议通过官方渠道购买或订阅 MathWorks 提供的产品。具体流程如下: #### 获取 MATLAB 和图像处理工具箱 1. **访问官方网站** 访问 MathWorks 官方网站 (https://www.mathworks.com/) 并登录账户。 2. **选择产品** 浏览可用的产品列表,在线订购所需的 MATLAB 版本以及附加的图像处理工具箱[^1]。 3. **完成支付** 按照提示完成付款过程,获得授权许可文件。 4. **下载软件包** 登录到个人账号页面,找到已购产品的下载链接,选择适合的操作系统版本进行下载。 5. **执行安装程序** 运行下载好的安装器,按照向导指示逐步操作直至结束。在此过程中可以选择要安装的具体组件,确保勾选了“Image Processing Toolbox”。 6. **激活许可证** 使用之前收到的序列号或其他形式的有效凭证来激活新安装的应用程序实例。 7. **验证安装成功** 打开命令窗口输入 `ver` 命令查看当前环境中加载的所有工具箱及其版本信息,确认 Image Processing Toolbox 已经被正确识别[^2]。 8. **学习资源推荐** 关注微信公众号【CV之道】可获得更多关于 MATLAB 的程和支持文章,如《手把手图文并茂安装 matlab2021(Win10版)》,有助于顺利完成整个设置工作[^3]。 ```matlab % 验证是否安装了图像处理工具箱 if exist('imread','file') ~= 0 && ver('images') disp('图像处理工具箱已经成功安装'); else error('未检测到有效的图像处理工具箱,请重新检查安装情况'); end ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值