个人微信扫码支付接口

请问如何接入微信扫码支付请问如何接入微信扫码支付百度知道知科技百家号微信扫码支付接入步骤流程图:公众号支付申请方法:1、登录公众平台,选择"微信支付"=》点击“开通”=》按照页面提示填写资料;企业号请登录企业号管理平台,选择“服务中心”=》点击“微信支付”进行开通。2、收到审核通过的邮件后就可以开始开发工作。需要登录商户平台,在页面填写打款收到的金额,并在线签署协议,完成支付申请。(PS:扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。)(本文内容由百度知道网友贡献)本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。百度知道知科技百家号最近更新:简介:科技不神秘,知道君告诉你。作者最新文章相关文章支付篇—微信扫码支付
应用场景:
商户根据商品信息,生成商品二维码,用户通过微信扫一扫功能扫描该二维码,完成支付。
支付模式:
现在微信扫码支付支持两种模式。
模式一需要商户必须先在公众平台后台设置支付回调URL。URL实现的功能:接收用户扫码后微信支付系统回调的productid和openid。
模式二与模式一相比,流程更为简单,不依赖设置的回调支付URL。商户后台系统先调用微信支付的统一下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付。注意:code_url有效期为2小时,过期后扫码不能再发起支付。
我使用的模式二,也就是微信的统一下单接口。该模式的业务流程时序图如下:
业务流程说明:
(1)商户后台系统根据用户选购的商品生成订单。
(2)用户确认支付后调用微信支付【统一下单API】生成预支付交易;
(3)微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接code_url。
(4)商户后台系统根据返回的code_url生成二维码。
(5)用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。
(6)微信支付系统收到客户端请求,验证链接有效性后发起用户支付,要求用户授权。
(7)用户在微信客户端输入密码,确认支付后,微信客户端提交授权。
(8)微信支付系统根据用户授权完成支付交易。
(9)微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用户。微信客户端展示支付交易结果页面。
(10)微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微信后台系统不再发送该单的支付通知。
(11)未收到支付通知的情况,商户后台系统调用【查询订单API】。
(12)商户确认订单已支付后给用户发货。
整个支付流程精简下来主要就是2点:
①调用接口获取支付二维码并显示出来
②微信回调接口,通知支付结果
针对这2点我写了两个方法,一个是获取二维码,一个是提供给微信的支付结果回调接口。
开发过程中需要用到微信提供的jar包,maven地址如下:
&com.github.wxpay&
&wxpay-sdk&
* 该类为配置类,主要是关于公众号和商户的一些配置信息抽离出来
public class MyConfig implements WXPayConfig{
public String getAppID() {
return "wx11bdef";
public int getHttpConnectTimeoutMs() {
return 8000;
public int getHttpReadTimeoutMs() {
return 10000;
public String getKey() {
return "";
public String getMchID() {
return "";
@RequestMapping(value = "/getWxPayCode")
public void getWxPayCode(HttpServletRequest req, HttpServletResponse resp)
throws IOException{
MyConfig config = new MyConfig();
WXPay wxpay = new WXPay(config);
String out_trade_no = DateUtil.dateToStr(new Date(), "yyyyMMddHHmmss");
Map&String, String& data = new HashMap&String, String&();
data.put("body", "填写商品名称");
data.put("out_trade_no", out_trade_no);
data.put("device_info", "");
data.put("fee_type", "CNY");
data.put("total_fee", "1");
data.put("spbill_create_ip", "127.0.0.1");
data.put("notify_url", "https://www.baidu.com/getWxPayNotify.action");
data.put("trade_type", "NATIVE");
data.put("product_id", "12");
Map&String, String& respnoe = null;
respnoe = wxpay.unifiedOrder(data);
String codeUrl = respnoe.get("code_url");
System.out.println("返回的二维码url:" + codeUrl);
} catch (Exception e) {
e.printStackTrace();
resp.setContentType("text/charset=UTF-8");
OutputStream os = resp.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(respnoe.toString());
oos.flush();
oos.close();
os.close();
这样就完成了微信支付的二维码请求。在进行请求的时候,微信是以xml格式的数据进行的请求,不过微信已经在提供的jar包里进行了封装,所以我们就不必再进行数据封装了。
商户后台将该二维码地址返回给手机端,手机端通过zxing工具包,将该地址转换成二维码供用户扫码支付。当用户扫码支付完成后,微信后台会回调我们提供给微信后台的接口,就是刚才我们设置的notify_url参数,这里一定要记得是外网能够访问到的地址!
下面是处理微信回调的方法:
* 获得微信支付通知回调结果
* Exception
* IOException
@RequestMapping(value = "/getWxPayNotify")
public void getWxPayNotify(HttpServletRequest req, HttpServletResponse resp) throws Exception {
String notifyData = "";
InputStream is = req.getInputStream();
StringBuffer sb = new StringBuffer();
BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8"));
while ((s = in.readLine()) != null){
sb.append(s);
in.close();
is.close();
notifyData = sb.toString();
MyConfig config = new MyConfig();
WXPay wxpay = new WXPay(config);
Map&String, String& notifyMap = WXPayUtil.xmlToMap(notifyData);
if (wxpay.isPayResultNotifySignatureValid(notifyMap)) {
logger.info("支付成功");
logger.error("支付失败");
logger.info("微信支付返回的通知为:" + notifyMap);
resp.setContentType("text/charset=UTF-8");
OutputStream os = resp.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(notifyData);
oos.flush();
oos.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
具体的处理方法这里我就不写了,微信回调的时候需要验证签名是否正确,并校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄漏导致出现“假通知”,造成资金损失。另外当微信回调我们的接口的时候,我们需要给微信后台返回应答,已经接收到回调,不然微信将会重新发起通知(通知频率为15/15/30/180/00/,单位:秒)
另外当客户端一定时间内没有接收到微信后台的回调时,也可以主动查询订单状态,跟统一下单差不多,只是把下单改为查询
Map&String, String& resp = wxpay.orderQuery(data);
微信扫码支付暂时写到这里,后续如果有什么变化,再添加。附上微信支付的开发文档,里面会有各个参数的说明, 上面的代码没说的太详细。
统一下单:
支付结果通知:
如需转载,请注明出处!
没有更多推荐了,2018微信支付新规:静态扫码支付每天最高500元-闽南网
2018微信支付新规:静态扫码支付每天最高500元
来源:中国新闻网
  央行扫码支付新规4月1日起执行
  静态扫码每日限额为何是500元
  根据央行规定,使用静态条码支付,同一客户单个银行账户或所有支付账户、快捷支付单日累计交易金额应不超过500元。看到这一规定,有些消费者第一反应就是抱怨额度太低:&以后每天扫码支付不能超过500元了,真不够用啊?&事实上,这是大家的误解。业内人士指出,受500元额度限制的主要是使用静态二维码的街边小商小贩,大部分的扫码支付特别是额度较大的消费还是用动态码多,也就是商家用扫码枪来扫消费者手机上的动态二维码。从以往消费数据来看,500元的限额也完全满足绝大部分消费者的需求。
  扫码支付从4月1日起将有章可循。去年年底,央行发布《中国人民银行关于印发〈条码支付业务规范(试行)〉的通知》,配套印发了《条码支付安全技术规范(试行)》和《条码支付受理终端技术规范(试行)》,自日起实施。
  静态码支付每天限额500元
  对于即将执行的新规,部分消费者担心额度不够用。业内人士指出,一些消费者之所以产生误解,主要是因为动态码和静态码没有区分。最简单的判断方法,如果消费者用自己的手机扫商户提供的印在纸上的二维码,就是静态码支付;如果消费者调出自己手机上的付款码,商户用扫码枪扫这个码,就是动态码支付。一般街边的小摊贩可能用的是静态码,大部分有固定店面的商户多会选择用动态码。
  根据央行规定,使用静态条码进行支付的,风险最高,风险防范能力最低,在央行的风险等级体系中为D级,限额也最低。使用静态条码支付,同一客户单个银行账户或所有支付账户、快捷支付单日累计交易金额应不超过500元。
  动态条码的风险防范能力由高到低分为A、B、C三级,不同等级对应的交易验证方式条码和支付限额也各不相同。越安全的动态码支付,交易限额就越高。
  具体来说,采用包括数字证书或电子签名在内的两类(含)以上有效要素进行验证的动态码,风险防范能力为A级,可以由银行、支付机构与客户通过协议自主约定单日累计额度。
  采用不包括数字证书、电子签名在内的两类(含)以上有效要素(注:如指纹、密码等)进行验证的,风险防范能力为B级,同一客户单个银行账户或所有支付账户、快捷支付单日累计交易金额最高为5000元。
  采用不足两类有效要素进行验证的动态码支付,风险防范能力为C级,同一客户单个银行账户或所有支付账户、快捷支付单日累计交易金额最高为1000元。
  因此,笼统说扫码支付4月1日以后每日限额500元是不准确的。因为在央行新规中,每天限额500元,仅仅针对静态条码。如果是消费超过500元以上,可以请商家用扫码枪扫顾客的支付宝或者微信的动态付款码。这样就不会受到500元的限制。
  扫码支付设限主要是为安全
  随着扫码支付的迅速普及,与之相关的欺诈案例也越来越多。最常见的是,商户设置在收银台边的静态码被不法分子悄悄更换。因为二维码图案复杂,难以仔细辨别,连店主都没有发现,结果货款就这样轻而易举地进了别人腰包。
  央行有关负责人表示,条码支付借助开放互联网和非专业设备进行交易处理,带来一定的技术风险。包括:可视化风险,条码在开放互联网环境下以图形化方式进行展示,不法分子可通过截屏、偷拍等手段盗取支付凭证,在支付凭证有效期内盗用资金;易携带恶意代码的风险,条码不仅可存储支付要素,也可携带非法链接或程序代码,不法分子可将木马病毒、钓鱼网站链接制成条码,诱导客户扫描,窃取支付敏感信息;信息单向交互风险,条码支付只能实现发起方或接收方的单向信息交互,不法分子可利用该弱点实施&中间人攻击&,绕过身份认证机制,造成用户资金损失;扫码设备安全强度低的风险,条码支付对设备要求低,普通的手机摄像头、超市简易的收银机扫描枪等不具备加密、防拆机等安全功能的设备均可识别条码,易被不法分子非法改装使用。
  该负责人解释称,为引导银行、支付机构提高交易验证方式的安全性,加强客户资金安全保护,对于风险防范能力高、交易验证方式更为安全的,不设定额度上限,市场主体可与客户自行约定交易限额。
  基于防替换、防盗刷等安全因素角度考虑,要求银行、支付机构使用静态条码支付时要执行更加严格的限额管理措施,以鼓励市场主体采用更为安全的动态条码提供支付服务。依据主要市场机构条码支付交易数据显示,上述额度已覆盖绝大部分使用条码支付付款客户及商户的需求。
  为什么静态码限额设为500元
  在央行划分的等级体系中,静态码安全性最低,限额也最低,只有500元。这个500元的限额是如何制定的呢?
  支付行业内部人士表示,根据现有的扫码消费数据,目前95%以上的消费者每天静态码支付在500元以下,因此绝大多数用户不会受到影响。&一般用静态码,也就是在街边买个煎饼果子,买点儿水果蔬菜,500元肯定够了。&退一万步说,就算遇到欺诈,损失也比较有限。这一限额保护的是对二维码消费使用不太熟练,无法清晰辨认欺骗行为的用户,这批用户在中国占很大量级。
  静态二维码的安全性,远远低于实时生成的动态二维码。动态码每分钟会更新一次,安全性很高。专家建议,使用条码支付时,尽量不要拿手机扫别人的静态条码,而是让别人扫你的手机。(记者程婕)
延伸阅读:
原标题:扫码付新规4月执行 静态扫码每日限额500元
责任编辑:朱惠娥
“夏夜与美食更配”在泉州人身上展现得淋漓尽致。趁着夜里的些许凉意,约上亲朋好友一
48小时点击排行榜微信支付是微信公众平台向有在线收款需求的公众号提供的商品展示、在线下单及付款、即时到帐、经营分析等功能的整体解决方案。
企业在开通微信支付接口后,用户只需用手机扫一扫二维码便可立即支付,整个过程非常简便流畅。商户可以把商品做成二维码,张贴在车站、广告牌、海报、名片等处。也可通过微信小店、自定义菜单、关键字回复等方式向订阅用户推送商品消息,用户可在微信公众号中完成选购支付的流程。
开通微信支付所需资料
1.微信支付负责人姓名、联系电话、邮箱
2.企业执照、银行账户、运营人身份证照片
3.商家名称(对外展示的名字,一般可用微信名)
4.所提供的商品或服务的简单介绍。
开通微信支付流程
以上资料准备好后,可直接联系公众平台第三方服务机构“优度网”,可快速开通微信认证、微信支付、扫码支付等,所需时间为3~5工作日。
微信支付支持的主体为企业、政府、组织机构、社团、媒体等。个体户在资质不全、没有对公银行账户的情况下,也可以联系优度网在线工作人员,说明情况进而帮忙开通好微信认证及微信支付功能。
微信支付开通地址:
优度网客服电话:021-
微信支付应用场景
微信支付可用于各种支付场景,如酒店订房、餐厅点餐、商场超市埋单、停车场付费、手机充值等等。
1. 扫码支付
用户扫描二维码(线下或PC端的均可),即可生成微信支付交易页面,完成交易流程。
2. 公众号支付
用户在微信中关注商户的微信公众号,在商户的微信公众号内完成商品和服务的支付购买。如QQ充值、广东联通、印美图、麦当劳、微团购、香港航空、微信电影票等公众号均支持该方式。
开发了APP应用的企业,可以将微信支付接入到程序里。如停车场收费APP,车主扫码即可完成计时、付费。
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。

我要回帖

更多关于 微信扫码支付开发 的文章

 

随机推荐