public string getwxgzhpayrefund(){

//构造请求参数

requesthandler packagereqhandler = new requesthandler();

#region 构造请求参数

packagereqhandler.setparameter("appid", wxpayconfig.appid);//appid

packagereqhandler.setparameter("mch_id", wxpayconfig.mchid);//商户号

packagereqhandler.setparameter("nonce_str", tenpayv3util.getnoncestr());//随机串

packagereqhandler.setparameter("out_refund_no", out_refund_no);

packagereqhandler.setparameter("out_trade_no", out_trade_no);//订单号

packagereqhandler.setparameter("refund_fee", (int)(convert.todecimal(refund_fee) * 100) + "");

packagereqhandler.setparameter("total_fee", (int)(convert.todecimal(total_fee) * 100) + ""); //金额,以分为单位

packagereqhandler.setparameter("transaction_id", transaction_id);

packagereqhandler.setparameter("sign", packagereqhandler.createmd5sign("key", wxpayconfig.key));//商户api密钥(签名)

//

#endregion

//将参数转为xml字符串

string data = packagereqhandler.parsexml(); //发起post异步请求,获取返回的内容

//本地或者服务器的证书位置(证书在微信支付申请成功发来的通知邮件中)

string cert = @"d:\wshh\apiclient_cert.p12";

//私钥(在安装证书时设置)

string password = wxpayconfig.mchid;

servicepointmanager.servercertificatevalidationcallback = new remotecertificatevalidationcallback(checkvalidationresult);

//调用证书

x509certificate2 cer = new x509certificate2(cert, password, x509keystorageflags.persistkeyset | x509keystorageflags.machinekeyset);

#region 发起post请求

httpwebrequest webrequest = (httpwebrequest)httpwebrequest.create(wxpayconfig.refund_url);

webrequest.clientcertificates.add(cer);

webrequest.method = "post";

byte[] postdatabyte = encoding.utf8.getbytes(data);

webrequest.contentlength = postdatabyte.length;

stream stream;

stream = webrequest.getrequeststream();

stream.write(postdatabyte, 0, postdatabyte.length);

stream.close();

httpwebresponse httpwebresponse = (httpwebresponse)webrequest.getresponse();

streamreader streamreader = new streamreader(httpwebresponse.getresponsestream());

string responsecontent = streamreader.readtoend();

#endregion

var res = system.xml.linq.xdocument.parse(responsecontent);

string return_code = res.element("xml").element("return_code").value;

hashtable hashtable = new hashtable();

hashtable.add("return_code", return_code);

return dicresult;

}

private static bool checkvalidationresult(object sender, x509certificate certificate, x509chain chain, sslpolicyerrors errors)

{

if (errors == sslpolicyerrors.none)

return true;

return false;

}

ajax调用微信退款接口,微信退款(在.net core 用http方式请求)相关推荐

  1. ajax调用java程序,从微信小程序到鸿蒙JS开发-JS调用Java

    除轻量级智能穿戴设备,现鸿蒙支持的手机.汽车.TV.手表.平板等属于富鸿蒙,在JS语言的项目中也有Java模块,并提供了JS跨语言调用Java方法的技术.现需要实现查看商品评论时,统计出长评.中评和短 ...

  2. php微信群发接口,微信公众平台群发接口问题

    服务号新增的高级群发接口,在对接"上传图文消息素材"时,返回44003 本人之前调用服务号的接口,一直很顺利,例如创建菜单的接口,微信前两天公布了高级群发接口(每个月能发送1次,变 ...

  3. php微信自动回复接口,微信接口自动回复

    /* http://fanyi.youdao.com/openapi.do?keyfrom=weifan&key=791593512&type=data&doctype=&am ...

  4. Java 微信支付接口(统一下单,异步回调,订单退款,取消订单)

    一.准备工作 APP绑定微信商户平台获取商户id(mchID).证书(商户后台下载).支付签名密钥(商户后台设置api密钥).退款签名密钥(商户后台设置api密钥ipv3)等 1.导入微信支付SDK ...

  5. 微信公众号退款,app微信退款,支付宝退款,浦发退款

    最近公司财务爸爸提需求,把三个支付退款api集成到公司系统里面去,由于之前api文档看的不够仔细,遇到很多坑,特此记录,分享给同样遇到坑的小伙伴: 商户能提供的是 appid 你的appid 也就是对 ...

  6. 微信小程序接入微信支付(二):后台调用统一下单接口

    微信统一支付官方文档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1 因该接口需要商户系统中自己的订单编号,笔者先 ...

  7. php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)

    微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中. 内容有:微信摇一摇接口/微信多客服接口/微信支付接口/微信红包接口/微信卡券接口/微信小店接口/JSAPI <?php clas ...

  8. 【Day40】php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)

    微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中. 内容有:微信摇一摇接口/微信多客服接口/微信支付接口/微信红包接口/微信卡券接口/微信小店接口/JSAPI <?phpclass ...

  9. 微信JS接口 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置

    微信JS接口 微信JS接口 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置 来源:http://www.cnblogs.com/txw1 ...

  10. 微信提现接口一秒提现多次只扣一次钱

    经手的一个微信小程序,有钱包提现余额到微信的功能,最近查看数据的时候发现有人使用某种工具在同一时间提现了多次,但只扣了了一次钱包余额,比如用户钱包有3元,他同一时间提现了多次2元,这样实际到账10元, ...

最新文章

  1. groupby+(apply+agg+transform)方法的比较
  2. 【深度学习】面向医学图像的病灶分割调研(一)
  3. .CN域名总量达1090.6万个:8月份共净增13.8万个
  4. HDOJ 2018 母牛的故事
  5. 看我打脸Message Pack
  6. 区块链浏览器_YOYOW正式发布更新版本区块链浏览器
  7. 最近发现一个小生意非常不错
  8. bat文件如何获取输入内容并写入文件
  9. mybatis开启二级缓存和懒加载,类型别名,类都简称
  10. spring boot 教程(三)配置详解
  11. 前端对接海康威视监控
  12. 服务器无法通过系统,Day 10246 服务器无法通过系统非页面共享区来进行分配,因为服务器已达非页面共享分配的配置极限...
  13. SVN迁移IP变更地址修改relocate
  14. Python+OpenCV判断图像是黑底还是白底
  15. SAP修改消息内容和报错类型(OBA5,SE91)
  16. Linux,grep命令,在大日志文件中搜索关键字 最后/最开始出现位置
  17. JavaBeans分类
  18. probably,possibly,may的用法区别是什么呀
  19. 源码编译安装php-7.4.8
  20. centos6关闭防火墙(zonealarm pro防火墙)

热门文章

  1. “Ceph浅析”系列之二——Ceph概况
  2. 在Eclipse里自动导入相应包的类名的快捷键
  3. X264结构体中的变量解释
  4. Codeforces-691C-Exponential notation(模拟)Java 以及输入的处理
  5. 距离之和最小 V3 51Nod - 1110(带权中位数或者爆搜)
  6. CodeForces 632C The Smallest String Concatenation(水)
  7. mac nginx映射ip和端口_南京课工场IT培训:Nginx虚拟主机 (基于域名 基于端口 基于ip)...
  8. 全国植被覆盖度VFC逐月数据
  9. Java中的可变参数使用
  10. 插入排序 java实现