微信退款接口

官方地址  https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
具体的退款API调用接口为   https://api.mch.weixin.qq.com/secapi/pay/refund

证书下载 

//TODO 9.0 操作支付表,把当前的支付的状态变成 退款状态   state 1 ---> 2
//TODO 10 操作预约表,可以把当前的预约状态取消  已支付--->退款
//TODO 11 操作用户表,如果是充值退款的话,把用户的现金 - 当前退款的money
//TODO 12其他等等的操作,生成记录单号之类的

关于证书的使用

将下载下来的证书放到项目中的路径,然后在发起post请求时,使用这个证书加密发送内容  比如你发送的是ABC 加密后为密文
HttpClient的代码

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.6</version>
</dependency>

核心的代码

import java.io.File;
import java.io.FileInputStream;
import java.security.KeyStore;
import javax.net.ssl.SSLContext;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLContexts;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
/*** This example demonstrates how to create secure connections with a custom SSL* context.*/
public class ClientCustomSSL {public static String SSLCERT_PATH="";//证书的路径public static String SSLCERT_PASSWORD;//证书的密籍@SuppressWarnings("deprecation")public static String doRefund(String url,String data) throws Exception {//注意PKCS12证书 是从微信商户平台-》账户设置-》 API安全 中下载的KeyStore keyStore = KeyStore.getInstance("PKCS12");//指向你的证书的绝对路径,带着证书去访问FileInputStream instream = new FileInputStream(new File(SSLCERT_PATH));//P12文件目录try {//下载证书时的密码、默认密码是你的MCHID mch_idkeyStore.load(instream, SSLCERT_PASSWORD.toCharArray());//这里写密码} finally {instream.close();}//下载证书时的密码、默认密码是你的MCHID mch_idSSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, SSLCERT_PASSWORD.toCharArray())//这里也是写密码的.build();// Allow TLSv1 protocol onlySSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext,new String[] { "TLSv1" },null,SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();try {HttpPost httpost = new HttpPost(url); // 设置响应头信息httpost.addHeader("Connection", "keep-alive");httpost.addHeader("Accept", "*/*");httpost.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");httpost.addHeader("Host", "api.mch.weixin.qq.com");httpost.addHeader("X-Requested-With", "XMLHttpRequest");httpost.addHeader("Cache-Control", "max-age=0");httpost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ");httpost.setEntity(new StringEntity(data, "UTF-8"));CloseableHttpResponse response = httpclient.execute(httpost);try {HttpEntity entity = response.getEntity();String jsonStr = EntityUtils.toString(response.getEntity(), "UTF-8");EntityUtils.consume(entity);return jsonStr;} finally {response.close();}} finally {httpclient.close();}}
}

微信退款关于证书的使用相关推荐

  1. 微信退款API证书-P12、本地测试及Windows、Linux系统配置证书

    首先第一步申请API证书,这里就不多说了.按照微信官方文档操作产品能力概览 | 微信支付商户平台文档中心 Window系统操作步骤 1.需要去pay.weixin.com 下载证书 2.解压 安装ap ...

  2. 微信退款工具(小程序)

    1.官方网址 https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_4 2.微信退款需要证书,在发送请求之前使用 具体使用参 ...

  3. 微信退款证书使用c#

    微信退款证书使用c# using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...

  4. php做一个微信退款,PHP实现微信退款功能

    大家好,我是小编,最近在调微信退款接口,发现有许多坑,更大家分享一下 ① 要是在测试的时候,网页提示 curl 58 说明 证书的路径出现问题(这里要填物理路径,也就是绝对路径) ②网页提示curl ...

  5. 【记】微信支付服务器证书更换通知的验证流程

    [记]微信支付服务器证书更换通知的验证流程 原文:[记]微信支付服务器证书更换通知的验证流程 [重要]微信支付服务器证书更换通知,请开发人员验证以免影响交易 尊敬的微信支付商户&服务商: 因微 ...

  6. 拼团功能实现 php_PHP实现微信退款功能

    最近在调微信退款接口,发现有许多坑,更大家分享一下 ① 要是在测试的时候,网页提示 curl 58 说明 证书的路径出现问题(这里要填物理路径,也就是绝对路径) ②网页提示curl 52 说明你的证书 ...

  7. 尚医通(二十四)微信退款(取消预约功能)

    目录 一.取消预约 1.需求描述 2.开发取消预约接口 一.取消预约 1.需求描述 取消订单分两种情况: (1)未支付取消订单,直接通知医院更新取消预约状态 (2)已支付取消订单,先退款给用户,然后通 ...

  8. 微信退款流程实现整理(java)

    前言 此处整理为简便,将所有应用到的方法都整理到了一起,实际开发中尽量将controller,service,mapper,工具类分开.此文章着重注意退款回调,其中应用了数据解密(作者一开始困扰在此处 ...

  9. java实现微信退款

    微信退款之前需要在常量中配置退款地址,退款的地址必须是可以直接访问的.(之前的申请商户平台及在开放平台申请账号不在描述)在调起之前需要下载商户平台上的证书将其放在项目src下. 微信退款回调url : ...

最新文章

  1. Win 系统 PyTorch 安装配置教程
  2. iOS app 企业内部发布及HTTPS服务器配置
  3. django models模型 内部类 class Meta 简介
  4. redis 安装并设置为开机启动服务
  5. Enterprise Library: Logging and Instrumentation Application Block概述
  6. ubuntu安装linux deepin,Ubuntu 13.04安装Linux Deepin特色软件
  7. java udp 工具类_java udp 简单实现
  8. mac mysql常用命令
  9. docx4j linux上文件内容乱码问题
  10. python爬虫小案例
  11. 框架 - SpringMVC框架
  12. 数据可视化项目(二)
  13. 腾讯X5浏览器简单使用
  14. mysql语句格式化日期时间成特定格式
  15. 欧盟通用数据保护条例GDPR.docx数据摘要 导读:GDPR通用数据保护条例中文版由中国政法大学互联网金融法律研究院组织翻译, 新法案由11章共99条组成。 GDPR的通过意味着欧盟对个人信息保
  16. uni-app 二维码转base64 分享
  17. JAVA电子产品购物平台计算机毕业设计Mybatis+系统+数据库+调试部署
  18. ICV:车载激光雷达市场将在三年内迎来百亿美元的蓝海市场
  19. 打印图形 鸟瞰金字塔
  20. 贪吃蛇java设计代码下载_java贪吃蛇游戏源代码

热门文章

  1. 变换矩阵_平移 缩放 旋转及统一变换
  2. 计算机在环境设计中的应用前景,浅谈数字媒体艺术的现状与前景
  3. 用cmd命令行的形式清除需要管理员权限的流氓软件
  4. matlab中eacf函数,基于MATLAB的切比雪夫I型模拟低通滤波器设计
  5. 如何运行vue项目(详细步骤)
  6. Ubuntu系统在终端查看一些软硬件版本或文件大小的指令!
  7. word文件丢失怎么办?恢复Word文档的3个方案
  8. MOSS同步AD账户(三)
  9. 【机器视觉】移动机器人控制软件的设计与实现
  10. ThinkPHP5助手函数汇总