赞
踩
微信支付申请资料审核通过后,超级管理员需进行签约后,才可获得正式交易权限和商户平台各项产品能力。微信平台提供两种签约方式:
另外,因商户的微信支付交易发起依赖于公众号、小程序、移动应用(即APPID)与微信支付商户号(即MCHID)的绑定关系, 所以,还需在签约后登录对应APPID平台完成绑定关系确认。(若申请单中未填写公众号,需在签约后自行发起绑定)
APPID
,MCHID(微信支付商户号)
,KEY(API密钥)
的值交由技术研发人员。APPID
可通过成功接入邮件中查看或通过登录微信公众平台 https://mp.weixin.qq.com->开发(下滑左侧菜单)->基本配置->公众号开发信息,即可查到AppID。MCHID
商户号可通过成功接入邮件中查看或通过登陆微信商户平台 https://pay.weixin.qq.com->【账户中心】->【账户设置】->【商户信息】中查看商户号。KEY
的值需要手动设置,设置API密钥需要商户号的超级管理员才能操作,详细步骤如下:为保证商户接入质量,提升交易安全及用户体验,微信支付的合作服务商在正式上线交易前,必须先根据本文指引完成验收。验收完成后,服务商在验收公众平台(微信号:WXPayAssist)提交验收通过申请,审核通过后,才能开通相应的支付权限(如:扫码支付)。否则,请根据审核驳回提示,重新完成验收。
沙箱环境api协议与正式API完全相同,可通过将正式API的调用URL增加一层sandboxnew路径,即可对接到仿真系统。
例如,刷卡支付URL:https://api.mch.weixin.qq.com/pay/micropay
变更为:https://api.mch.weixin.qq.com/sandboxnew/pay/micropay。
故方案暂定为:
在acmtc-spring-boot-main
工程的db.properties
配置文件中增加wxpay_app_id
,wxpay_mch_id
,wxpay_key
,wxpay_url
,wxpay_notify_rul
其中wxpay_app_id
的值为APPID
wxpay_mch_id
的值为MCHID
wxpay_key
的值为KEY
(沙箱环境值不同,需通过https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey
接口获取)
wxpay_url
的值为https://api.mch.weixin.qq.com
(沙箱环境值为https://api.mch.weixin.qq.com/sandboxnew
)
wxpay_notify_rul
的值为微信异步通知回调企业接口,值为https://www.acmtc.com/pay/wx/notifyUrl.do
(沙箱环境为http://221.221.138.250:85/pay/wx/notifyUrl.do
)
code_url
code_url
生成二维码,并输出到页面统一下单API
支付结果通知
查询订单API
关闭订单API
申请退款API
查询退款API
退款结果通知
SDK与DEMO下载
apiclient_cert.p12
放在有访问权限控制的目录中,证书密码为商户号<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.3</version>
</dependency>
//二维码中包含的信息
String content = "这里是微信接口返回的code_url";
Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
// 指定编码格式
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
// 指定纠错级别(L--7%,M--15%,Q--25%,H--30%)
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
// 编码内容,编码类型(这里指定为二维码),生成图片宽度,生成图片高度,设置参数
BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 200, 200, hints);
//设置请求头
response.setHeader("Content-Type","application/octet-stream");
OutputStream outputStream = response.getOutputStream();
MatrixToImageWriter.writeToStream(bitMatrix, "png", outputStream);
outputStream.flush();
outputStream.close();
PS.在微信开发社区中,发现了部分关于微信支付的问题,先列出来以防遇到;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。