小程序支付jsapi

这篇具有很好参考价值的文章主要介绍了小程序支付jsapi。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

小程序使用微信支付实际上是使用的微信商家中的JSAPI支付

  1. 第一步先开通微信商家中的JSAPI支付微信小程序jsapi支付,方法,小程序,微信小程序,微信

2.在开发设置中配置支付授权目录
微信小程序jsapi支付,方法,小程序,微信小程序,微信
3.在你自己的小程序后台中申请绑定微信商家账号
微信小程序jsapi支付,方法,小程序,微信小程序,微信
微信小程序jsapi支付,方法,小程序,微信小程序,微信
4.在你的小程序的开发设置中配置小程序密钥,ip白名单,服务器域名等
微信小程序jsapi支付,方法,小程序,微信小程序,微信

5.配置好之后就可以做小程序支付
附上代码:文章来源地址https://www.toymoban.com/news/detail-530200.html

/**
     * 调用统一下单,并获取支付跳转链接
     * @param openid
     * @param price 总价格
     * @param description 商品描述
     * @param out_trade_no 商户订单号
     * @param  request
     * @return
     */
    public static Map<String,String> payH5(String openid, BigDecimal price, String description, String out_trade_no, HttpServletRequest request){
        String ip = GetIp.getIpAddr(request);
        int total = FengFromYuan(price);
        // 封装需要的信息
        Map<String, String> payMap = new HashMap<String, String>();
        String nonceStr= WXPayUtil.generateNonceStr();
        long  timestamp =  System.currentTimeMillis()/ 1000;

        //定义 两个String 字段类型
        String result_code = null;
        String myRremark = null;

        try {
            // 1. 拼接下单地址参数
            Map<String,String> param = new HashMap<String,String>();
            param.put("appid", String.valueOf(publicAppid)); // 小程序appid
            param.put("mch_id", String.valueOf(mch_id)); // 商户号ID
            param.put("nonce_str",nonceStr);  // 随机字符串
            param.put("body", description) ;// 商品描述
            param.put("out_trade_no", out_trade_no); // 商户订单号
            param.put("total_fee", String.valueOf(total));//金额(分)
            param.put("spbill_create_ip", ip); // 商户终端ip
            param.put("notify_url", "自己的回调地址"); // H5微信异步通知回调地址
            param.put("trade_type", "JSAPI"); // 支付类型
            param.put("openid", openid);
            // 生成签名,官方默认MD5+商户秘钥+参数信息
//            String sign =createSign(param);
            String sign = WXPayUtil.generateSignature(param, "填写自己的商家密钥");
            param.put("sign", sign);
            // 将所有参数转换为xml形式
            String xmlParam = WXPayUtil.mapToXml(param);

            // 2. 发送请求,请求地址是微信支付的接口地址
            HttpClient1 httpClient1 = new HttpClient1("https://api.mch.weixin.qq.com/pay/unifiedorder");
            httpClient1.setHttps(true);// https协议
            httpClient1.setXmlParam(xmlParam);
            httpClient1.post();


            // 获取结果
            String xmlResult = httpClient1.getContent();
            //以下内容是返回前端页面的json数据
            String mweb_url = "";//跳转链接
            String prepay_id="";//prepay_id
            System.out.println(xmlResult);
            if (xmlResult.indexOf("SUCCESS") != -1) {  // 只要执行了下发接口,都会包含SUCCESS的
                Map<String, String> map = WXPayUtil.xmlToMap(xmlResult);
                //mweb_url为拉起微信支付收银台的中间页面,可通过访问该url来拉起微信客户端,完成支付,mweb_url的有效期为5分钟。
                mweb_url = (String) map.get("mweb_url");
                prepay_id=(String) map.get("prepay_id");
                //判断调起支付是否成功
                if (map.get("result_code").equals("SUCCESS")){
                    result_code = "true";
                }else {
                    result_code = "false";
                    myRremark = map.get("err_code_des");
                }
                System.out.println("结果:"+xmlResult);
                //支付完返回浏览器跳转的地址,如跳到查看订单页面
                String redirect_url = "填写自己的回调域名";
                String redirect_urlEncode =  URLEncoder.encode(redirect_url,"utf-8");//对上面地址urlencode
                mweb_url = mweb_url + "&redirect_url=" + redirect_urlEncode;//拼接返回地址
                System.out.println("成功的payMap:"+payMap);
            } else {

                payMap.put("msg", "支付失败");
                System.out.println("失败的payMap:"+payMap);
                return payMap;
            }
            payMap.put("appId", String.valueOf(publicAppid)); // 小程序ID
            payMap.put("package","prepay_id="+prepay_id);
            payMap.put("nonceStr",nonceStr);
            payMap.put("signType","MD5");
            payMap.put("timeStamp",String.valueOf(timestamp));
            String sign1 = WXPayUtil.generateSignature(payMap, "自己的密钥");
            payMap.put("paySign",sign1);
            payMap.put("out_trade_no",out_trade_no);
            System.out.println("payMap:"+payMap);
        } catch (Exception e) {
            e.printStackTrace();
            payMap.put("msg", "系统支付错误");
            System.out.println("系统支付错误的payMap:"+payMap);
            return payMap;
        }
        //添加微信支付记录日志等操作
        payMap.put("result_code",result_code);
        payMap.put("myRremark",myRremark);
        payMap.put("msg", "success");
        System.out.println("支付成功的payMap:"+payMap);
        return payMap;
    }

    /**
     * 1块------->100分
     * 元转分
     *
     * @param bigDecimal 钱数目
     * @return 分
     */
    public static int FengFromYuan(BigDecimal bigDecimal) {
        return bigDecimal.multiply(new BigDecimal(100)).intValue();
    }

到了这里,关于小程序支付jsapi的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信小程序】Java实现微信支付(小程序支付JSAPI-V3)java-sdk工具包

          对于一个没有写过支付的小白,打开微信支付官方文档时彻底懵逼 ,因为 微信支付文档太过详细, 导致我无从下手,所以写此文章,帮助第一次写支付的小伙伴梳理一下。 一、流程分为三个接口:(这是前言,先看一遍,保持印象,方便理解代码) 1、第一个接口:

    2024年02月03日
    浏览(59)
  • 微信小程序demo 调用支付jsapi缺少参数 total_fee,支付签名验证失败 究极解决方案

    其中package: ‘prepay_id=’ + data.prepayId,这一行代码,必须拼接‘prepay_id=’ 文档官方文档: https://pay.weixin.qq.com/docs/merchant/apis/jsapi-payment/jsapi-transfer-payment.html 注意看,后台生成sign时候,拼接的字符串中,也需要加上\\\"prepay_id=\\\" app支付和小程序支付的代码之前还有这种差别和坑…

    2024年02月04日
    浏览(52)
  • 【微信小程序】Java实现微信支付(小程序支付JSAPI-V3)java-sdk工具包(包含支付出现的多次回调的问题解析,接口幂等性)

          对于一个没有写过支付的小白,打开微信支付官方文档时彻底懵逼 ,因为 微信支付文档太过详细, 导致我无从下手,所以写此文章,帮助第一次写支付的小伙伴梳理一下。 一、流程分为三个接口:(这是前言,先看一遍,保持印象,方便理解代码) 1、第一个接口:

    2024年01月16日
    浏览(77)
  • 微信支付,JSAPI支付,APP支付,H5支付,Native支付,小程序支付功能详情以及回调处理

    支付wiki: https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml 支付api: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/index.shtml 开发工具包(SDK)下载: https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay6_0.shtml#part-1 1.1简介 JSAPI支付是指商户通过调用微信支付提供的JSAPI接口,在支付场景中调起微信支付模

    2023年04月18日
    浏览(49)
  • 微信支付APIV3统一回调接口封装(H5、JSAPI、App、小程序)

    😊 @ 作者: 一恍过去 💖 @ 主页: https://blog.csdn.net/zhuocailing3390 🎊 @ 社区: Java技术栈交流 🎉 @ 主题: 微信支付统一回调接口封装(H5、JSAPI、App、小程序) ⏱️ @ 创作时间: 2022年07月12日 对微信支付的H5、JSAPI、H5、App、小程序支付方式进行统一,此封装接口适用于普通商户

    2024年02月08日
    浏览(47)
  • 微信的 h5 支付和 jsapi 支付

    申请地址: https://pay.weixin.qq.com/ 如果你还没有微信商户号,请点击上面的链接进行申请,如果已经有了,可以跳过这一步 首先点击 账户中心 ▶ API安全 ▶ 申请API证书 申请详细步骤: https://kf.qq.com/faq/161222NneAJf161222U7fARv.html 首先点击 账户中心 ▶ API安全 ▶ 设置APIv3密钥 ▶

    2024年02月13日
    浏览(46)
  • 〔支付接入〕微信的 h5 支付和 jsapi 支付

    申请地址: https://pay.weixin.qq.com/ 如果你还没有微信商户号,请点击上面的链接进行申请,如果已经有了,可以跳过这一步 首先点击 账户中心 ▶ API安全 ▶ 申请API证书 申请详细步骤: https://kf.qq.com/faq/161222NneAJf161222U7fARv.html 首先点击 账户中心 ▶ API安全 ▶ 设置APIv3密钥 ▶

    2024年02月13日
    浏览(52)
  • java对接微信支付:JSAPI支付(微信公众号支付)

    本文是【微信JSAPI支付】文章,主要讲解商户对接微信支付,简洁版测试 文章目录 一、JSAPI支付接入前准备 二、代码片段 1.引入Maven依赖 2.后端业务请求接口 3.前端调起支付请求方法 总结 1、JSAPI支付首先需要注册、认证一个公众号(大概300块一年) 微信公众号注册 2、申请成为

    2024年02月08日
    浏览(62)
  • java对接微信支付:JSAPI支付成功之“微信回调”

    承接上一篇微信支付,现在简单说一下 微信支付回调 目录 一、支付回调 二、微信回调地址问题 1.本地/上线测试 2.控制器调用接口(代码) 总结 当用户支付成功之后,支付平台会向我们指定的服务器接口发送请求传递订单支付状态数据 如果你是再本地进行测试,那就需要使用

    2024年02月12日
    浏览(41)
  • 【微信公众号】微信 jsapi 支付大概流程

    jsapi 支付可运用于微信小程序和 h5 jsapi 支付不会弹出二维码(这点与 native 支付不同) jsapi 支付运用于移动端 native 支付运用于 PC 端 🔥 微信支付需要商家申请 商户号 ,商务号需要和小程序或公众号(服务号)进行绑定 💦 在微信商务平台可开通 native 支付、jsapi 支付或其

    2024年02月09日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包