微信统一下单 java_微信支付(java版本)_统一下单
最近工作接触到微信支付,刚开始解决微信支付很神秘,接触之后发现并没有那么神秘,就是有很多坑,在开发的时候需要注意,整理出来:
1.准备工作
首先需要登录微信支付公众平台阅读接口文档,地址:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_12&index=2 ;
其次了解微信支付商户系统和微信支付系统主要交互说明:
步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。
步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【统一下单API】。
步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay
步骤4:商户APP调起微信支付。api参见本章节【app端开发步骤说明】
步骤5:商户后台接收支付通知。api参见【支付结果通知API】
步骤6:商户后台查询支付结果。,api参见【查询订单API】
然后是微信支付交互过程
2.开始工作
不需要导入微信支付的jar包,需要哪些jar导入哪些就可以,
发送统一下单请求调用:
/**
*
* @方法名称:sendWxPayRequest
* @内容摘要: <发送统一下单请求>
* @param body
* @param outTradeNo
* @param totalFee
* @param spBillCreateIP
* @return
* String
* @exception
* @author:鹿伟伟
* @创建日期:2016年2月19日-下午2:24:05
*/
public String sendWxPayRequest(String body,String detail,String outTradeNo,int totalFee,String spBillCreateIP
)
{
// 构造HTTP请求
HttpClient httpclient = new HttpClient();
PostMethod postMethod = new PostMethod(Configure.PAY_API);
WxPayReqData wxdata = new WxPayReqData(body,detail,outTradeNo,totalFee,spBillCreateIP);
StringBuffer requestStr = new StringBuffer(
"");
requestStr.append("
requestStr.append(wxdata.getAppid());
requestStr.append("]]>
");
requestStr.append("
requestStr.append(wxdata.getBody());
requestStr.append("]]>");
requestStr.append("
requestStr.append(wxdata.getMch_id());
requestStr.append("]]>
");
requestStr.append("
requestStr.append(wxdata.getNonce_str());
requestStr.append("]]>
");
requestStr.append("
requestStr.append(wxdata.getNotify_url());
requestStr.append("]]>
");
requestStr.append("
requestStr.append(wxdata.getOut_trade_no());
requestStr.append("]]>
");
requestStr.append("
requestStr.append(wxdata.getSpbill_create_ip());
requestStr.append("]]>
");
requestStr.append("
requestStr.append(wxdata.getTotal_fee());
requestStr.append("]]>
");
requestStr.append("
requestStr.append(wxdata.getTrade_type());
requestStr.append("]]>
");
requestStr.append("
requestStr.append(wxdata.getSign());
requestStr.append("]]>
");
requestStr.append("");
// 发送请求
String strResponse = null;
try {
RequestEntity entity = new StringRequestEntity(
requestStr.toString(), "text/xml", "UTF-8");
postMethod.setRequestEntity(entity);
httpclient.executeMethod(postMethod);
strResponse = new String(postMethod.getResponseBody(), "utf-8");
Logger.getLogger(getClass()).debug(strResponse);
} catch (HttpException e) {
Logger.getLogger(getClass()).error("sendWxPayRequest", e);
} catch (IOException e) {
Logger.getLogger(getClass()).error("sendWxPayRequest", e);
} finally {
postMethod.releaseConnection();
}
return strResponse;
}
3.问题:
客户端调起微信支付接口是一直返回-1:
a.你要用验证过的keystore打包出来安装才能正常进入支付,否则不能进入微信,有可能出现-1的情况;
b.你的手机确认要有安装微信app;
微信统一下单 java_微信支付(java版本)_统一下单相关推荐
- 微信回调 java_详解APP微信支付(java后台_统一下单和回调)
1.微信配置信息 global.properties 2.方法wxpay用于生成预支付订单信息 方法notifyWeiXinPay用于微信支付成功后的回调, 注意: 在手机端使用微信支付成功后,微信服 ...
- 微信支付查询订单java_微信支付java版本之查询订单
本文实例为大家分享了微信支付订单的查询接口,供大家参考,具体内容如下 1.接口简介 2.代码实现 package com.zhrd.bussinss.platform.controller.shop; ...
- 视频教程-企业微信支付JAVA版_向员工收款-微信开发
企业微信支付JAVA版_向员工收款 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信息 ...
- APP微信支付(java后台_统一下单和回调)
微信支付Java后台 1.微信配置信息 global.properties 2.方法wxpay用于生成预支付订单信息 方法notifyWeiXinPay用于微信支付成功后的回调, 注意: 在手机端使用 ...
- 微信公众号之微信支付(V3版)jsp页面jsapi统一下单调启支付(java版)
web项目 按顺序一步一步来 准备: 申请了微信支付接口的微信公众号一枚 , 备案的域名网站一枚, (如果有没有的这两个东西会耽误你很久,因为微信支付必须是线上,无法本地调试,) 这里说一下 如果有经 ...
- 微信PC端扫码支付 java 模式二的扫码支付
前言 这次分享的是java对接微信的支付接口,实现电脑端扫码支付后,跳转支付成功页面的例子.之所以分享是微信的Api太坑了.留下的文档也少,对接过程中容易出现各种各样的问题,在实现这扫码支付功能的时候 ...
- 微信小程序推送消息java开发_干货 | 微信小程序推送消息简单Demo
在开始前,你需要准备:注册微信小程序 一个简单的springBoot 项目 微信开发者工具 正式 微信小程序发送消息主要通过WxMaTemplateMessage 类来推送 public class ...
- 检查java_如何检查Java版本?
Java是世界上最流行的编程语言之一,用于构建不同类型的跨平台应用程序. 本文介绍了如何使用命令行检查你的Linux系统上安装了什么版本的Java.这在安装需要特定版本Java的应用程序时很有用. J ...
- app支付宝支付java后台_支付宝app支付java后台流程demo
支付宝app支付java后台流程demo 使用ssm框架实现支付宝支付功能. 支付宝测试环境代码测试 源代码 https://github.com/OUYANGSIHAI/sihai-maven-ss ...
最新文章
- 共模电感适用的频率_电感选型详解及设计规范
- 20什么情况下会帮助他人的因素
- linux源码gpio模拟i2c,linux内核gpio模拟i2c实例.doc
- HDU 2686 多线程DP
- windows下pclpy安装失败的解决方法——本地安装
- redis常用命令getex_Redis 常用命令篇(末尾含不常用)
- Linux批量清空当前目录中的日志文件
- 苹果电脑您没有权限来打开应用程序_苹果电脑换“芯”,全网最快的Apple Silicon M1 MacBook Air发售...
- Linux怎么登录redis数据库,Linux 系统上 Redis 数据库的 安装 部署 使用
- PHP 处理换行问题
- linux java不能运行命令,linux java不能运行命令
- 邱锡鹏《神经网络与深度学习》蒲公英书学习笔记
- java socket连接池_Java - Socket连接池
- 离线底图瓦片,可用于Cesium加载使用【图说GIS】
- left join 多表关联查询
- Kotlin学习安卓篇(一)为什么要学习Kotlin?
- javaee之spring3
- Java技巧|Java怎么升级版本?
- mysql where not in_mysql查询条件not in 和 in的区别及原因说明
- 中科大计算机本科毕业论文范文,查找学位论文
热门文章
- 湖南科技学院C语言答案,湖南科技大学C语言期末考试习题库.doc
- 天池金融风控入门赛学习
- 精心整理的前端开发必备网站推荐
- matlab中暂停的快捷键,如何设置“暂停调用”和“强制调用”快捷键
- 方差、标准差、均方差等各种差
- 【运维】--服务器之间文件备份
- 多路宽带聚合(绑定)的算法思考
- 十二星座匹配对象_星座配对:让十二星座崩溃的恋爱对象
- 创业多想一秒,做事少磕十年
- 物流运输“营改增”好心办“坏”事?