php微信公众号退款,微信公众号支付--4--微信退款
官网文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
一、下载证书
使用公众号支付申请退款需要验证商户API证书,登录微信商户平台(pay.weixin.qq.com)-->账户中心-->账户设置-->API安全,下载证书。apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。
二、使用证书
将证书放置在服务能访问的目录,但是注意以下几点:
1.证书文件不能放在web服务器虚拟目录,应放在有访问权限控制的目录中,防止被他人下载;
2.建议将证书文件名改为复杂且不容易猜测的文件名;
3.商户服务器要做好病毒和木马防护工作,不被非法侵入者窃取证书文件。
三、主要调用的api
微信退款:com.lly835.bestpay.service.impl.BestPayServiceImpl.refund(RefundRequest request)
四、代码编写
1、添加配置文件
由于是本地开发,我将证书重命名为h5.p12,放置在D:\\h5.p12路径,在application.yml文件中添加配置wechat.keyPath: D:\\h5.p12,然后将配置写入 WechatAccountConfig 对象
@Data
@Component
@ConfigurationProperties(prefix = "wechat")
public class WechatAccountConfig {
private String mpAppId;
private String mpAppSecret;
/**
* 商户id
*/
private String mchId;
/**
* 商户秘钥
*/
private String mchKey;
/**
* 商户证书路径
*/
private String keyPath;
/**
* 微信支付异步通知地址
*/
private String notifyUrl;
}
2、构造com.lly835.bestpay.service.impl.BestPayServiceImpl实例对象,并交由spring管理
@Component
public class WechatPayConfig {
@Autowired
private WechatAccountConfig wechatAccountConfig;
@Bean
public BestPayServiceImpl bestPayService () {
BestPayServiceImpl bestPayService = new BestPayServiceImpl();
bestPayService.setWxPayH5Config(wxPayH5Config());
return bestPayService;
}
@Bean
public WxPayH5Config wxPayH5Config() {
WxPayH5Config wxPayH5Config = new WxPayH5Config();
wxPayH5Config.setAppId(wechatAccountConfig.getMpAppId());
wxPayH5Config.setAppSecret(wechatAccountConfig.getMpAppSecret());
wxPayH5Config.setMchId(wechatAccountConfig.getMchId());
wxPayH5Config.setMchKey(wechatAccountConfig.getMchKey());
wxPayH5Config.setKeyPath(wechatAccountConfig.getKeyPath());
wxPayH5Config.setNotifyUrl(wechatAccountConfig.getNotifyUrl());
return wxPayH5Config;
}
}
3、controller
@Controller
@RequestMapping("/pay")
public class PayController {
@Autowired
private PayService payService;
/**
* 微信退款(需要下载证书,放置在D:\\h5.p12,然后配置地址wechat.keyPath: D:\\h5.p12)
* @param orderDTO
*/
@PostMapping
public void refund(OrderDTO orderDTO) {
payService.refund(orderDTO);
}
}
4、service实现类
@Service
@Slf4j
public class PayServiceImpl implements PayService {
@Autowired
private BestPayServiceImpl bestPayService;
@Override
public RefundResponse refund(OrderDTO orderDTO) {
RefundRequest refundRequest = new RefundRequest();
refundRequest.setOrderId(orderDTO.getOrderId());
refundRequest.setOrderAmount(orderDTO.getOrderAmount().doubleValue());
refundRequest.setPayTypeEnum(BestPayTypeEnum.WXPAY_H5);
log.info("【微信退款】refundRequest={}", JsonUtils.toJson(refundRequest));
RefundResponse refundResponse = bestPayService.refund(refundRequest);
log.info("【微信退款】refundResponse={}", JsonUtils.toJson(refundResponse));
return refundResponse;
}
}
php微信公众号退款,微信公众号支付--4--微信退款相关推荐
- 微信,支付宝支付,微信公众号小程序授权等
微信,支付宝支付,微信公众号小程序授权等 前言 微信支付 微信授权 maven依赖(更新) 前言 最近在公司也做了很多移动端项目,如今微信公众号,小程序又特别火爆,免不了要接触支付,授权这类的业务需求 ...
- 微信公众号中的支付宝支付与微信支付 支付宝支付问题(微信bug)
一般,在微信公众号中的商城都是需要支持微信支付和支付宝支付的,当然,较大的公司对于鹅厂和阿里的站队就不说了,所以这里简单记录一下支付宝支付和微信支付的主要流程.说是简单介绍,这是因为确实不难,因为前端 ...
- php公众号提现功能,微信公众号打赏的钱怎么提现_微信公众号打赏功能_微信公众号打赏从哪里取出来...
微信公众号打赏的钱怎么提现,微信公众号打赏功能.微信公众号之前打赏功能可以立即取现,但是最近出现了一些变动,会有人问微信公众号打赏为什么不能立刻取现?小编为大家带来了微信公众号打赏取现时间调整. 微信 ...
- 微信(jspai版本即公众号h5版)支付-微信下单支付及企业转账到零钱
微信(jspai版本即公众号h5版)支付-微信下单支付及企业转账到零钱 一.后端前置条件 二.配置h5 devServer 三.后端开发代码 四.前端开发代码(uniapp) 一.后端前置条件 准备好 ...
- 微信公众平台对所有公众号开放自定义菜单
据统计,微信公众号已达1000多万了,但大多数没有微信认证,且没有开发能力,为此微信公众平台开放了自定义菜单功能给所有公众号,这是微信团队年前给广大自媒体送的大礼,期待微信越来越开放 公众帐号运营者点 ...
- java 微信群发多图文_[Java教程]httpClient实现微信公众号消息群发
[Java教程]httpClient实现微信公众号消息群发 0 2016-09-21 20:00:10 1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信ope ...
- 浅析微信支付:微信支付简单介绍(小程序、公众号、App、H5)
本文是[浅析微信支付]系列文章的第二篇,主要讲解一下普通商户接入的支付方式以及其中的不同之处. 上篇文章讲了本系列的大纲,没有看过的朋友们可以看一下. 浅析微信支付:前篇大纲 微信支付是集成在微信客户 ...
- vue 微信公众号支付接口_基于vue的h5项目之支付宝支付与微信支付
本文仅记录基于vue开发h5项目过程中使用支付宝和微信支付过程中的重点与槽点,仅为前端部分,如有疏漏不正之处,请于文末评论探讨.注意:标红部分灰常重要,仔细阅读官方文档非常重要,耐心非常重要,细心非常 ...
- 限时团购,6.9折:《微信开发深度解析:公众号、小程序高效开发秘籍》推荐序
全书由目 Senparc.Weixin SDK 作者苏震巍历时 2 年完成,涵盖了开发微信公众号及小程序需要用的的各项后端开发技能.技巧.避坑提示,以及 Senparc.Weixin SDK 微信公众 ...
- python登录并关注公众号_python微信公众号之关注公众号自动回复
我们知道一旦使用开发者模式,我们就无法使用公众号平台中的自动回复功能,也就是关注自动回复功能只有自己写才可以. 如图所示,我们无法直接使用此功能. 那么接着上一个博客,我们完成了关键词自动回复功能,博 ...
最新文章
- java treemap用法_Java TreeMap put()用法及代码示例
- 重磅!泰晤士发布重量级学科排名,90所中国大陆高校上榜
- 3.网络通信协议分类
- Django基础之Model创建表
- errorgetlast php,php error_clear_last()函数与error_get_last()函数
- 使用Git工具下载android源码---带步骤
- java列出文件正则过滤_JAVA正则表达式过滤文件的实现方法
- 阿里云发布时间序列数据库TSDB,关于时序你了解多少?
- 计算机信息科学蔺泽浩,上海交通大学计算机科学与工程系(CSE)
- 中小企业集群ntpd服务搭建
- python绘制图像直方图_Python – 计算图像的直方图
- 编译ROS-Academy-for-Beginners
- Unity 阴影的制作方式
- mysql 隐秘后门_Phpstudy被暴存在隐藏后门-检查方法
- webpack 处理字体_不可错过的Webpack核心知识点
- 基于convLSTM模型的雷达图像外推算法
- 【UE4】 自定义编辑器的放置Actor窗口
- centos 7 屏蔽国外ip访问
- 31个惊艳的数据可视化作品,感受“数据之美”!
- 内网渗透笔记——三层发现and四层发现
热门文章
- WindowsXP音量控制程序的安装
- 服务器lsass占用内存_记一次服务器病毒查杀过程:lsass.exe占用内存高
- 计算机广告制作教程,Photoshop实例教程:制作网站横条广告
- Python实现多条.txt文本数据合并为.csv文件数据
- cadence破译时显示服务器失败,在服务器开启cadence失败 报错如下
- 冰点还原无法修改计算机时间,安装冰点还原后无法更改系统时间怎么办
- 用python处理excel视频教程_从零基础开始用Python处理Excel数据(第一季)课件+资料...
- 黑马程序员——一些常用类的代码实践
- 博弈论学习笔记——博弈收益期望的计算与决策
- 第一台数控机床专用计算机采用什么元件,数控技术试题库(含答案)