java实现微信扫码支付功能

2025-05-29 0 104

本文实例为大家分享了java实现微信扫码支付的具体代码,供大家参考,具体内容如下

1、maven项目的pom.xml中添加如下jar包:

?

1

2

3

4

5
<dependency>

<groupid>com.github.wxpay</groupid>

<artifactid>wxpay-sdk</artifactid>

<version>0.0.3</version>

</dependency>

2、编写wewxconfig类:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66
package com.xx.wxpay;

import com.github.wxpay.sdk.wxpayconfig;

import org.springframework.beans.factory.annotation.value;

import org.springframework.stereotype.component;

import java.io.inputstream;

/**

* 描述:微信支付配置信息

*

* @author ssl

* @create 2018/04/24 19:25

*/

@component

public class wewxconfig implements wxpayconfig {

@value("${wechat.public.appid}")

private string appid;

@value("${wechat.merchant}")

private string mchid;

@value("${wechat.public.apikey}")

private string apikey;

/**

* 公众账号id:微信支付分配的公众账号id(企业号corpid即为此appid)

*

* @return

*/

@override

public string getappid() {

return appid;

}

/**

* 商户号:微信支付分配的商户号

*

* @return

*/

@override

public string getmchid() {

return mchid;

}

/**

* @return

*/

@override

public string getkey() {

return apikey;

}

@override

public inputstream getcertstream() {

return null;

}

@override

public int gethttpconnecttimeoutms() {

return 0;

}

@override

public int gethttpreadtimeoutms() {

return 0;

}

}

3、编写wewxpayservice:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106
package com.xx.wxpay;

import com.alibaba.fastjson.jsonobject;

import com.github.wxpay.sdk.wxpay;

import com.google.common.collect.maps;

import com.xx.model.order;

import com.xx.model.product;

import org.slf4j.logger;

import org.slf4j.loggerfactory;

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.beans.factory.annotation.value;

import org.springframework.stereotype.component;

import org.springframework.stereotype.service;

import java.text.messageformat;

import java.util.hashmap;

import java.util.map;

/**

* 描述:

*

* @author ssl

* @create 2018/04/24 20:15

*/

@service

public class wewxpayservice {

protected logger logger = loggerfactory.getlogger(this.getclass());

@value("${project.url}")

private string projecturl;

@autowired

private wewxconfig wewxconfig;

/**

* 统一下单

*

* @param product

* @param order

* @return

*/

public map<string, string> unifiedorder(product product, order order) {

map<string, string> data = maps.newhashmap();

wxpay wxpay = new wxpay(wewxconfig);

data.put("body", "xx-" + product.getname());

data.put("detail", "详细信息");

data.put("out_trade_no", order.getorderno());

data.put("device_info", "web");

data.put("fee_type", "cny");

data.put("total_fee", order.getamount() + "");

data.put("spbill_create_ip", "127.0.0.1");

data.put("notify_url", projecturl + "/base/order/notifyurl");

data.put("trade_type", "native"); // 此处指定为扫码支付

data.put("product_id", product.getid() + "");

try {

map<string, string> resp = wxpay.unifiedorder(data);

logger.debug(jsonobject.tojsonstring(resp));

return resp;

} catch (exception e) {

e.printstacktrace();

}

return null;

}

/**

* 订单查询

*

* @param orderno:订单号

* @return

*/

public map<string, string> orderquery(string orderno) {

map<string, string> reqdata = maps.newhashmap();

reqdata.put("out_trade_no", orderno);

wxpay wxpay = new wxpay(wewxconfig);

try {

map<string, string> resp = wxpay.orderquery(reqdata);

logger.debug(jsonobject.tojsonstring(resp));

return resp;

} catch (exception e) {

e.printstacktrace();

}

return null;

}

public static string geturl() {

wxpay wxpay = new wxpay(new wewxconfig());

map<string, string> data = new hashmap<string, string>();

data.put("body", "上屏名称");

data.put("detail", "商品详情");

data.put("out_trade_no", "2ab9071b06b9f739b950ddb41db2690d");

data.put("device_info", "");

data.put("fee_type", "cny");

data.put("total_fee", "1");

data.put("spbill_create_ip", "218.17.160.245");

data.put("notify_url", "http://www.example.com/wxpay/notify");

data.put("trade_type", "native"); // 此处指定为扫码支付

data.put("product_id", "12");

try {

map<string, string> resp = wxpay.unifiedorder(data);

system.out.println(resp);

} catch (exception e) {

e.printstacktrace();

}

return "";

}

}

4、调用:

?

1

2
/** 向微信支付系统下单,并得到二维码返回给用户 */

map<string, string> resdata = wewxpayservice.unifiedorder(product, order);

5、resdata.get("code_url")为微信下单成功后返回的二维码地址,页面中用qrcode.js来显示该二维码,且该页面用定时器定时查询订单支付状态

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:https://blog.csdn.net/ZuoYanYouYan/article/details/80225553

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 java实现微信扫码支付功能 https://www.kuaiidc.com/111390.html

相关文章

发表评论
暂无评论