Java微信网页支付开发:实现微信扫码支付及弹出网页支付功能


微信网页支,付开发,实现微信扫,乐竞体育官网,乐竞体育平台,乐竞体育链接,乐竞体育官方


在开发过程中,实现微信网页支付功能是至关重要的。下面,我将详细介绍如何通过Java技术实现微信扫码支付,包括微信弹窗网页支付的具体步骤。


首先,我们需要判断用户所使用的支付平台。如果确认是微信平台,那么必须通过`window.location`来打开网页,因为其他方法在iOS版微信中可能无法打开,至少在新版微信中是这样的。以下是如何获取code的步骤:


💍

1. 判断用户平台:


- 如果是微信平台,使用`window.location`打开网页,如:`http://www.xxoo.com/InterfaceAPI/code`。


- 如果不是微信平台,弹出提示:“请使用微信或者支付宝App扫码”。


```java


if(isWeiXin()){


window.location='http://www.xxoo.com/InterfaceAPI/code';


} else if(isZFB()) {


alert('请使用微信或者支付宝App扫码');


}


}


function isWeiXin() {


return false;


}


function isZFB() {


return false;


}


```


🐱

2. 获取code:


- 回调地址需要使用`URLEncoder`的utf-8编码,最终我们只获取openid,若需要获取UserInfo的其他信息,可自行测试,只需修改`scope`参数。


```java


@RequestMapping({ "code"})


public void getCode(HttpServletRequest request, HttpServletResponse response) {


try {


// 回调地址


String redirect_uri = URLEncoder.encode(


"http://www.xxoo.com/InterfaceAPI/openid?codeID=7837283",


"utf-8");


String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="


+ WechatConfig.APP_ID


+ "&redirect_uri="


+ redirect_uri


+ "&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";


response.sendRedirect(url);


微信网页支,付开发,实现微信扫,乐竞体育官网,乐竞体育平台,乐竞体育链接,乐竞体育官方

} catch (Exception e) {


e.printStackTrace();


}


}


```


3. 接收code,获取openid:


- 这里有一个`codeid`参数,仅供参考,实际操作中我们只需获取openid。下面是如何使用GET方法获取json返回结果,并在获取到openid后重定向到支付页面。


```java


@RequestMapping({ "openid"})


public void getOpenid(String codeID, String code,


HttpServletResponse response) {


try {


// 后续处理


} catch (Exception e) {


e.printStackTrace();


}


}


```


4. 在前端支付页面输入支付金额,提交到后台。


```javascript


$.ajax({


type: "POST",

乐竞体育官方

dataType: "html",

乐竞体育平台

url: "http://www.xxoo.com/InterfaceAPI/weixinPay",


data: "value="+self.input.value,


timeout: 10000,


cache: true,


async: true,


error: function(data){


//alert(data+"---value-->"+self.input.value);


},


// ...


});


```


5. 后端接收到金额后,在后端统一下单。公众号支付需要注意的是,支付类型需改为`JSAPI`,同时需要获取openid。


微信网页支,付开发,实现微信扫,乐竞体育官网,乐竞体育平台,乐竞体育链接,乐竞体育官方

```java


@RequestMapping({ "weixinPay"})


public void weixinPay(HttpServletRequest request,


HttpServletResponse response) {


// 后续处理


}


```


6. 统一下单成功后,返回的结果示例。


7. 返回的参数需要重新签名并返回到前端,签名方法与统一下单时的签名相同。签名时必须带上微信商户返回的Json格式数据。


```java


public String testunifiedOrder(int fee, String openid) {


// 后续处理


}


```


8. 前端解析json,获取对应值,唤醒微信支付。


```javascript


success: function(data) {


if(document.attachEvent) {


document.attachEvent('WeixinJSBridgeReady', onBridgeReady);


document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);


} else {


onBridgeReady();


}


} else {


alert("支付失败");


}


// 微信回调


function onBridgeReady() {


// 后续处理


}


function onBridgeReady() {


// 后续处理


}


```


乐竞体育链接  乐竞体育官网  乐竞体育官方
标签云:#微信网页支 #付开发 #实现微信扫
最新文章: