微信服务号开发之jssdk-微信充值、支付见解
@RequestMapping("/chongzhi.do")
public class ChongzhiAction {
public static void main(String[] args) {
}
@Autowired
private TixianService tixianService;
@Autowired
private KtdpService ktdpService;
private HttpServletRequest request;
/**
* 支付回调
* @param request
* @return
* @throws IOException
*/
@RequestMapping
public String execute(HttpServletRequest request,HttpServletResponse response) throws IOException
{
//请修改数据库状态
InputStream is = request.getInputStream();
byte[] b = new byte[1024];
int size = is.read(b);
String str = new String(b, 0, size);
System.out.println(str);
// 获取请求数据
PayNotify payNotify = XMLConverUtil.convertToObject(PayNotify.class,
str);
String sign = payNotify.getSign();
WeixinConfig.PAY_KEY);
System.out.println("充值进来了1------"+payNotify.getResult_code());
System.out.println("充值进来了2------"+payNotify.getReturn_code());
// 支付成功
if ("SUCCESS".equals(payNotify.getResult_code())
&& "SUCCESS".equals(payNotify.getReturn_code())) {
System.out.println("充值进来了------");
String orderid = payNotify.getOut_trade_no();
String money= payNotify.getTotal_fee();
//String qian = String.format("%.2f", money);
String opid = payNotify.getOpenid();
System.out.println(opid+"opid");
//修改状态
//支付->余额加钱
Member member = ktdpService.findByOrderId(orderid);
member.setMenMoney(member.getMenMoney()+Float.parseFloat(money)/100);
ktdpService.update(member);
//增加一条记录
String wpayId=tixianService.getwpayId();
tixianService.addwpay(opid, money, wpayId);
response.getOutputStream().write("error".getBytes());
}
}
@RequestMapping(params="method=chongzhi")
public String toPay(HttpServletRequest request)
{
// 1.得openId
String openId = (String) request.getSession().getAttribute("openId");
String orderId = UUID.randomUUID().toString().replaceAll("-", "");
Member member = ktdpService.findByOpenId(openId);
member.setOrderId(orderId);
ktdpService.update(member);
// 参数
String chongzhimoney=request.getParameter("chongzhimoney");
//System.out.println(chongzhimoney);
// 2.去支付
String notifyUrl = URLManager.getServerURL(request)+"/chongzhi.do";
String json = JSSDKUtil.setPayParam(request, notifyUrl, chongzhimoney, orderId,
openId);
request.setAttribute("json", json);
// 4.调用微信支付
return "/pay_example.jsp";
}
}
@RequestMapping("/cardd.do")
public class CartoorderAction{
public static void main(String[] args) {
}
@Autowired
private KtdpService ktdpService;
private TixianService tixianService;
@Autowired
private DingDanService dingDanService;
private HttpServletRequest request;
/**
* 支付回调
* @param request
* @return
* @throws IOException
*/
@RequestMapping
public String execute(HttpServletRequest request,HttpServletResponse response) throws IOException
{
//请修改数据库状态
InputStream is = request.getInputStream();
byte[] b = new byte[1024];
int size = is.read(b);
String str = new String(b, 0, size);
System.out.println(str);
// 获取请求数据
PayNotify payNotify = XMLConverUtil.convertToObject(PayNotify.class,
str);
String sign = payNotify.getSign();
WeixinConfig.PAY_KEY);
// 支付成功
if ("SUCCESS".equals(payNotify.getResult_code())
&& "SUCCESS".equals(payNotify.getReturn_code())) {
String wpayid = payNotify.getOut_trade_no();
String money = payNotify.getTotal_fee();
String opid = payNotify.getOpenid();
Member member = ktdpService.findByOrderId(wpayid);
ktdpService.update(member);
tixianService.addwpay(opid, money, wpayid);
//修改状态
dingDanService.changemember(member,Float.parseFloat(money));
dingDanService.gethavepuboid(wpayid);
response.getOutputStream().write("success".getBytes());
response.getOutputStream().write("error".getBytes());
}
}
@RequestMapping(params="method=tijiaodd")
public String toPay(HttpServletRequest request) throws UnsupportedEncodingException
{
// 1.得openId
String openId = (String) request.getSession().getAttribute("openId");
String orderId = UUID.randomUUID().toString().replaceAll("-", "");
Member member = ktdpService.findByOpenId(openId);
// 参数
String dizhi = request.getParameter("dizhi");
dizhi = new String(dizhi.getBytes("ISO-8859-1"), "UTF-8");
String ids = request.getParameter("ids");
//System.out.println(ids);
String money=request.getParameter("money");
// 写订单
String wpayId=tixianService.getwpayId();
member.setOrderId(wpayId);
ktdpService.update(member);
String[] cid = ids.split("x");
tixianService.addDindan(member, cid, dizhi,wpayId);
// 2.去支付
String notifyUrl = URLManager.getServerURL(request)+"/cardd.do";
String json=JSSDKUtil.setPayParam(request, notifyUrl, money, wpayId, openId);
request.setAttribute("json", json);
// 4.调用微信支付
return "/pay_example.jsp";
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>微信支付</title>
<script type="text/javascript">
//json 数据
var x_json = ${json};
function jsApiCall()
{
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
x_json,
function(res){
//alert(res.err_code+res.err_desc+res.err_msg);
if (res.err_msg=="get_brand_wcpay_request:ok") //支付成功
{
}
else if (res.err_msg=="get_brand_wcpay_request:cancel") //支付过程中用户取消
{
}
else if (res.err_msg=="get_brand_wcpay_request:fail") //支付失败
{
}
}
);
}
{
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
}
}else{
jsApiCall();
}
}
onload = function()
{
callpay();
}
</head>
<body>
</html>
微信服务号开发之jssdk-微信充值、支付见解相关推荐
- 微信公众号开发之 “`高级接口`” 总结
微信公众号开发之 "高级接口" 总结 代码如下: <?php// $weixin = new class_weixin("", "") ...
- php订阅号发送消息,关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题,_PHP教程...
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题, 相信很多人会跟我一样,token验证之后,发送消息给订阅号,没有消息返回. 以下,说一下我辛苦调试得到的解决办法 ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 (四)微信公众号开发之网页授权获取用户基本信息 (五)微信公众号开发之网页中及 ...
- 微信公众号开发之H5页面跳转到指定的小程序
前言: 最近公司有一个这样的需要,需要从我们在现有的公众号H5页面中加一个跳转到第三方小程序的按钮.之前只知道小程序之间是可以相互跳转的,今天查阅了下微信开发文档原来现在H5网页也支持小程序之间的跳转 ...
- 微信公众号开发之jfinal wxin
jfinal wxing大家可能不太熟悉,他是jfinal框架(中国开源框架),用这个做微信公众号开发,非常快的,因为他已经把所有的微信的接口都集成里面了,我们主要是调用它的按口 要是你们PM要快点开 ...
- WeChat - 微信公众号开发之.Net Core接入
.net进行微信公众号开发的例子好像比较少,这里做个笔记 首先,我们需要让微信能访问到我们的项目,所以要么需要有一个可以部署项目的连接到公网下的服务器,要么可以通过端口转发将请求转发到我们的项目,总之 ...
- 微信公众号开发之40164错误,获取不到access_token,获取不到jsapi_ticket错误问题...
公司用开的微信签名接口突然间不能用了,调用的时候一直获取不到jsapi_ticket临时凭证,搞的我一脸懵逼,然后回想了下,接口代码没动过呀,公众号后台也只是设置过一次ip白名单,可是后来想了下,觉得 ...
- c# 微信公众号开发之token验证第三方服务器
初入微信,才发现真的一坑又一坑,小程序之前坑可能是前辈填掉了,前辈走后,公司开始搞公众平台,需要公众号开发,唯一后端的我,顶了上去. 服务器配置验证token,从官方文档理解就是,官方发送signat ...
- 微信公众号开发之40164错误,导致获取不到access_token
唉,刚解决access_token 失效的问题 ,又来一波 报错 40164 ['..IP...XXXX'] 第一想到的就是微信开发文档的全局返回码 但是就是没有 40164 烦啊!! 其实还是 ...
最新文章
- c++primer 5th第15章基础、课后习题自己解析、心得体会等
- java流类图结构_java学习之IO流(学习之旅,一)
- linux默认安装python_Linux下安装python
- mysql数据库 day06
- 使用HttpUnit进行集成测试
- cad的lisp程序大集合_大数据成神之路-Java高级特性增强(CopyOnWriteArraySet)
- stl------set
- python全栈测试题(一)
- asp和php漏洞,ASP_实例分析ASP上传漏洞入侵实战及扩展,【上传漏洞欺骗技术】 - phpStudy...
- 使用 Kubernetes 和 Kubeflow 扩展对象检测
- 数据集:各地区化妆品销量、人口数量和人均收入
- 常见的IC封装形式大全
- linux vga 分辨率低,通过 VGA 接口连接显示器时分辨率不正确
- 计算机网络工程用排线架,网络配线架使用和安装说明【图解】
- 一个由Dubbo Thread pool is EXHAUSTED引发的问题排查
- android 后台录制视频,Android实现视频录制
- 欧文分校计算机科学硕士项目,申请2019加州大学欧文分校计算机科学硕士要求都有哪些?...
- MATLAB参数估计 置信区间
- 动态规划 资源分配问题
- IE浏览DWG的CAD插件