微信免充值服务验证
来源:互联网 发布:淘宝红包能抵用运费吗 编辑:程序博客网 时间:2024/06/06 19:58
具体实现代码,工具类就懒得贴出来了,调用下自己的就行了,主要是几种价格,价格一定要正确,如果价格不正确校验是不通过的
package wx;import com.derbysoft.easygo.utils.*;import java.util.Date;import java.util.HashMap;import java.util.UUID;/** * Created by DT167 on 2017/7/24. */public class FreeReCharge { private String getSandBoxKeyUrl= "https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey"; private static String parntKey = "derbysoftwhtravelderbysoftcomaaa"; // private static String sandParntkey = "";//商户 //private static String sandParntkey = "";//服务商 private static String sandParntkey = ""; // private static String mchId = "1337465801"; // private static String mchId = ""; private static String mchId = ""; private String nonceStr = ""; private String sign = ""; private String filePath = "C:\\Users\\DT167\\Desktop\\derby\\cert2\\apiclient_cert.p12"; private static String create_nonce_str() { return UUID.randomUUID().toString().replace("-",""); } /** * 获取沙箱密钥 * a7dc4cb5fcac7fa42bc98b3320523801 * @return */ public String getSandboxnew(){ WxPayHelperTest helper = new WxPayHelperTest("wx7d0b728b9b412e2b", sandParntkey, mchId); String result = null; nonceStr =create_nonce_str(); String json = ""; HashMap<String,String> signMap =new HashMap<String,String>(); try{ signMap.put("mch_id",mchId); signMap.put("nonce_str",nonceStr); signMap.put("sign",helper.getSign(signMap,parntKey)); String parm = CustomClientSSL.mapToXML(CustomClientSSL.arrayHashMapToList(signMap), false); result = RequestUtils.sendPostRequest(getSandBoxKeyUrl, parm); //a7dc4cb5fcac7fa42bc98b3320523801 }catch(Exception e){ e.printStackTrace(); } return result; } /** * 查询沙箱订单 * @param orderNo * @return */ public String querySand(String orderNo){ WxPayHelperTest helper = new WxPayHelperTest("wx7d0b728b9b412e2b", sandParntkey, mchId); String result = null; nonceStr =create_nonce_str(); String json = ""; HashMap<String,String> signMap =new HashMap<String,String>(); try{ signMap.put("appid","wx7d0b728b9b412e2b"); signMap.put("mch_id",mchId); signMap.put("out_trade_no",orderNo); signMap.put("nonce_str",nonceStr); signMap.put("sign_type","MD5"); signMap.put("sign",helper.getSign(signMap,sandParntkey)); String parm = CustomClientSSL.mapToXML(CustomClientSSL.arrayHashMapToList(signMap), false); result = RequestUtils.sendPostRequest(ScanPayUtil.PAY_QUERY_API, parm); //a7dc4cb5fcac7fa42bc98b3320523801 }catch(Exception e){ e.printStackTrace(); } return result; } public static void test033(String orderNo,String money) throws Exception { WxPayHelperTest helper = new WxPayHelperTest("wx7d0b728b9b412e2b", sandParntkey, mchId); String bizPayUrl = helper.getBizPayUrl("豪华大床房", orderNo, money); System.out.print(bizPayUrl); } public String refundWeXin(String out_trade_no,String out_refund_no,String total_fee,String refund_fee,String refund_desc,String refund_account){ WxPayHelperTest helper = new WxPayHelperTest("wx7d0b728b9b412e2b", sandParntkey, mchId); try { String reuslt = helper.refundWeXin(out_trade_no,null,out_refund_no,total_fee,refund_fee,null,null,filePath); return reuslt; } catch (Exception e) { e.printStackTrace(); } return null; } public String scanPay(String sign_type,String body,String out_trade_no,String total_fee,String spbill_create_ip,String auth_code){ WxPayHelperTest helper = new WxPayHelperTest("wx7d0b728b9b412e2b", sandParntkey, mchId); try { String reuslt = helper.scanPay(null,body,out_trade_no,total_fee,spbill_create_ip,auth_code); return reuslt; }catch (Exception e) { e.printStackTrace(); } return null; } public String queryRefundWeXin(String out_trade_no,String transaction_id,String out_refund_no,String refund_id){ WxPayHelperTest helper = new WxPayHelperTest("wx7d0b728b9b412e2b", sandParntkey, mchId); try { String reuslt = helper.queryRefundWeXin(out_trade_no,transaction_id ,out_refund_no,refund_id); return reuslt; } catch (Exception e){ e.printStackTrace(); } return null; } public String downloadBill(Date bill_date, String bill_type, String sign_type){ WxPayHelperTest helper = new WxPayHelperTest("wx7d0b728b9b412e2b", sandParntkey, mchId); try { String reuslt = helper.downloadBill(bill_date,bill_type,null); return reuslt; } catch (Exception e){ e.printStackTrace(); } return null; } //https://pay.weixin.qq.com/wiki/doc/api/download/mczyscsyl.pdf //https://pay.weixin.qq.com/wiki/doc/api/download/ptsh_mczjksj.pdf //不同的验证,需要不同的价格,才能验证通过 public static void main(String[] args) throws Exception { String orderNo=create_nonce_str(); //4c28813260cf42979047883151c6be2d System.out.println("orderNo:"+orderNo); String result = null; FreeReCharge freeReCharge =new FreeReCharge(); //获取沙箱密码 result = freeReCharge.getSandboxnew(); sandParntkey = result; System.out.println(result); //付款,付款价格流程 System.out.println("=========付款======="); freeReCharge.test033(orderNo,"5.51"); //付款,退款流程 System.out.println("=========付款======="); freeReCharge.test033(orderNo,"5.52"); //查询 System.out.println("=========查询======="); result = freeReCharge.querySand(orderNo); System.out.println(result); //退款 System.out.println("=========退款======="); result = freeReCharge.refundWeXin(orderNo,create_nonce_str(),"552","551",null,null); System.out.println(result); //查询退款 System.out.println("=========查询退款======="); result = freeReCharge.queryRefundWeXin(orderNo,null,null,null); System.out.println(result); //下载对账单 /*result = freeReCharge.downloadBill(new Date(),"REFUND",null); System.out.println(result);*/ //刷卡支付,付款流程价格 /* result = freeReCharge.scanPay(null,"xxx-超市",orderNo,"501","8.8.8.8","134972693138721937"); System.out.println(result);*/ //刷卡支付,退款流程价格 result = freeReCharge.scanPay(null,"xxxxx-超市",orderNo,"502","8.8.8.8","134972693138721937"); System.out.println(result); //刷卡支付查询 System.out.println("=========查询======="); result = freeReCharge.querySand(orderNo); System.out.println(result); //刷卡支付退款 System.out.println("=========退款======="); result = freeReCharge.refundWeXin(orderNo,create_nonce_str(),"502","501",null,null); System.out.println(result); //查询退款 System.out.println("=========查询退款======="); result = freeReCharge.queryRefundWeXin(orderNo,null,null,null); System.out.println(result); }}
阅读全文
0 0
- 微信免充值服务验证
- 身份证号码验证web服务
- 验证服务新方法
- 短信验证码服务
- webx-表单验证服务
- Web服务实现验证码
- Email 电子邮件地址验证 WEB 服务
- 启动Windows以太网验证服务
- tornado学习: 外部服务验证
- PYTHON 验证码服务程序代码
- 周记(搭建cas验证服务)
- Shiro密码加密验证服务
- java作为客户端,对 .net服务 验证签名验证。
- Ajax用户名验证、服务条款加载、验证码生成
- 信用卡验证服务的一般步骤
- 身份证号码验证web服务(完整源码)
- Subversion服务Auth验证的配置
- 使用带验证的Web服务
- C语言实现堆排序
- DELPHI XE 10 拒接来电黑名单
- js父级函数调用子函数出现函数未定义问题
- (六)循环顺序队列的初始化、入队列、出队列
- 最短路(Dijstra算法)
- 微信免充值服务验证
- robot framework结合Jenkins
- 简单的整数划分问题
- poj2482 Stars in Your Window(线段树+扫描线+离散化)
- CSS行内块元素与行内元素的区别
- 洛谷p1608路径统计中的超级坑点
- document.ready()与window.load()的区别
- MFC_CScrollBar滚动条
- 冒泡排序的链表实现