微信公众号支付weixin4j开发

业务流程:用户点击发起支付按钮请求后端接口–>{后端:按API要求组装参数,以 XML 方式发送(POST)给微信支付接口(URL),微信支
付接口也是以 XML 方式给予响应}–>用户看到了一个输入密码的界面,包含金额等一些信息–>用户输入密码后出来一个支付成功的页面(这部分流程都是微信自己完成的,我们什么都不用做)–>返回系统自己的页面

开发流程
- 1)获取用户授权
- 2)调用统一下单接口获取预支付id
- 3)H5调起微信支付的内置JS
- 4)支付完成后,微信回调URL的处理

授权登录本文章不写,请查看授权登录文章:https://blog.csdn.net/I7show/article/details/80138424

前端JS调用后端支付接口

<%-- 微信支付JS --%>
<script type="text/javascript">
    function submit() {
    
        //支付金额
        var totalPrice =$("#totalPrice").val();
        $.ajax({
            type:'POST',
            url:'<%=basePath %>pay/saveFaceToFacePayment',
            //data:{ totalPrice: totalPrice, url:urls ,orderId :orderId},
            data:{ totalPrice: totalPrice,orderId :orderId ,content:"支付标题"},//传入后端接口的参数
            async: false,
            dataType: 'json',
            success: function(data) {
     //请求接口成功回调函数
                if (data.code == 0) {
                    alert(data.data);
                    return;
                }
                if (data.status == "success") {
                    WeixinJSBridge.invoke( //调起微信支付的内置JS
                        'getBrandWCPayRequest', {
                            "appId": data.appId,//公众号名称,由商户传入
                            "timeStamp": data.timeStamp,//时间戳,自1970年以来的秒数
                            "nonceStr": data.nonceStr, //随机串
                            "package": data.package,
                            "signType": data.signType,//微信签名方式:
                            "paySign": data.paySign //微信签名
                        },
                        function (res) {
    
                            WeixinJSBridge.log(res.err_msg);
                            if (res.err_msg == "get_brand_wcpay_request:ok") {
                                location.reload();
                            } else if (res.err_msg == "get_brand_wcpay_request:cancel") {
                                alert("取消支付");
                            } else {
                                alert("支付失败");
                            }
                        }
                    );
                } else {
                    alert('支付失败');
                }
            },
            error: function(err){
     //请求接口失败的回调函数
                alert('网络异常');
            }
        });
    }
</script>

后端接口

package net.seedor.controller.wechat;

import com.alibaba.fastjson.JSONObject;
import com.foxinmy.weixin4j.http.weixin.XmlResult;
import com.foxinmy.weixin4j.payment.WeixinPayProxy;
import com.foxinmy.weixin4j.payment.mch.Order;
import com.foxinmy.weixin4j.type.IdQuery;
import com.foxinmy.weixin4j.type.IdType;
import com.foxinmy.weixin4j.util.Consts;
import com.foxinmy.weixin4j.util.IOUtil;
import com.foxinmy.weixin4j.util.StringUtil;
import com.foxinmy.weixin<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值