zoukankan      html  css  js  c++  java
  • 微信APP支付服务端开发Java版(一)

    一、准备工作

    去微信开发者中心下载(扫码支付,里面的大部分代码是可以用的)

    https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1

    选择UTF-8的版本copy到你的项目里面

    找到Configure.java的类修改成public static String PAY_API = "https://api.mch.weixin.qq.com/pay/unifiedorder";

    下面正式进入代码部分

     1 //初始化配置信息        
     2 WXPay.initSDKConfiguration(
     3                 "MsfsfsafsfsfdsafsfC",//商品平台上的密码
     4                 "wxb21618828c323242",//appid
     5                 "1234235",//商户ID
     6                 "",
     7                 "d:/apiclient_cert.p12",//证书,在商户平台上下载 
     8                 //"/Users/Desktop/windowsserver/apiclient_cert.p12",
     9                 "3122421501");
    10 
    11 
    12                             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
    13                             Date date1 = new Date();
    14                             long datetime = date1.getTime()+3600*1000;
    15                             String generateTime = dateFormat.format(date1);//yyyyMMddHHmmss  订单生成时间
    16                             String failureTime = dateFormat.format(new Date(datetime));//yyyyMMddHHmmss  失效时间
    17                             ScanPayReqData reqData = new ScanPayReqData(shopOrder.getHdbt(), "旅游商品",
    18                                     shopOrder.getOrdercode(), priec,
    19                                     "", "192.168.0.1",
    20                                     generateTime,
    21                                     failureTime,
    22                                     "",
    23                                     "http://dsds/notify/WxPayNotify.action",//收到通知地址
    24                                     "APP"); 
    25                  String resdata= WXPay.requestScanPayService(reqData);
    26                             //签名验证
    27                             Map<String,Object> map = XMLParser.getMapFromXML(resdata);
    28                             if(Signature.checkIsSignValidFromResponseString(resdata)){
    29                                 
    30                                 if("SUCCESS".equals(map.get("return_code"))&&"SUCCESS".equals(map.get("result_code"))){
    31                                     jsonmap.put("appid", Configure.getAppid());
    32                                     jsonmap.put("prepayid", map.get("prepay_id").toString());
    33                                     jsonmap.put("package", "Sign=WXPay");
    34                                     jsonmap.put("partnerid", Configure.getMchid());
    35                                     jsonmap.put("noncestr", RandomStringGenerator.getRandomStringByLength(32));
    36                                     jsonmap.put("timestamp", new Date().getTime()/1000+"");
    37                                     jsonmap.put("sign", Signature.getSign(jsonmap));
    38                            //将jsonmap返回给APP他们用这些参数就可以完成调起微信支付进行支付了
    39 
    40                                 }
    41                                 
    42                             }else{
    43                                 System.out.println("签名验证失败");
    44                                 jsonmapT.put("result", "-1");
    45                                 jsonmapT.put("message", "签名验证失败");
    46                             }

    如有不明白的地方请留言。一些请求参数和返回的参数,参考官网文档

     

  • 相关阅读:
    使用eclipse从github导入maven项目
    J2SE 8的Lambda --- Comparator
    J2SE 8的Lambda --- functions
    J2SE 8的Lambda --- 语法
    J2SE 8的流库 --- 收集处理结果
    J2SE 8的流库 --- 转换流, 得到的还是流
    J2SE 8的流库 --- 基本类型流的使用
    J2SE 8的流库 --- 生成流
    Hadoop 3.0 安装
    程序员到底要不要读研,过来人给你几点建议!
  • 原文地址:https://www.cnblogs.com/di8hao/p/5336604.html
Copyright © 2011-2022 走看看