微信支付接入

1、准备

注册微信商户平台,https://pay.weixin.qq.comphp

注册开放平台  https://open.weixin.qq.comjava

   1.添加应用 2.提交开发支付权限的功能git

 重点 

     搞懂支付的业务流程 :https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3github

    其时,对于支付来讲,作实现完成,也要考虑,支付中,支付完成,退款中,已退款,结算 等状态。
apache

  若是仅仅,只是一个支付的话。不是这样了。api

   qq群:436498871微信

2、开发

    因为微信的使用的xml 格式的  报文。本身写相应解析,加密也是勾勾的。就用了github 上一个哥们写的
app

  https://github.com/louiseliu/weixin-pay dom

    用gradle 构建的项目,也是勾勾的。不过有相应的依赖什么的。
maven

   我已经打包有须要联系我。

   maven 配置


<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5</version>
    </dependency>
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.4.0</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.15</version>
     <exclusions>
       <exclusion>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
     </exclusion>
     <exclusion>
         <groupId>javax.jms</groupId>
        <artifactId>jms</artifactId>
     </exclusion>
     <exclusion>
        <groupId>com.sun.jdmk</groupId>
        <artifactId>jmxtools</artifactId>
     </exclusion>
     <exclusion>
        <groupId>com.sun.jmx</groupId>
        <artifactId>jmxri</artifactId>
     </exclusion>
    </exclusions>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.2</version>
</dependency>
<dependency>
    <groupId>com.wein</groupId>
    <artifactId>wexin-pay-1.1</artifactId>
    <version>1.1</version>
    <scope>system</scope>
    <systemPath>${basedir}/libs/weixin-pay-1.1.jar</systemPath>
</dependency>

  (2)

    https://pay.weixin.qq.com/index.php/account/api_cert

    下载证书,设置apiKey 

3、配置相应的基本信息


/**
 * 配置微信支付
 * */
 //appId
Configure.setAppID(AppConstant.WEIXIN_SHANGHU_OPENPLATFORM_APPID);
//商户号
Configure.setMchID(AppConstant.WEIXIN_SHANGHU_MCHID);
String path=applicationContext.getClass().getResource("/").getPath();
//p12key文件的位置
Configure.setCertLocalPath(path+"cert/apiclient_cert.p12");
Configure.setCertPassword(AppConstant.WEIXIN_SHANGHU_MCHID);
Configure.setSubMchID(AppConstant.WEIXIN_SHANGHU_MCHID);
//支付接口调用的apiKey
Configure.setKey(AppConstant.WEIXIN_SHANGHU_KEY);
//设置微信支付回调地址
Configure.setNotifyCallbackUrl("http://192.168.1.114:9967/order/app/v1/secure/order/reCallCheckPaySatus");


  建立统一付款定单

       

//设置开放平台的appId
        payPackage.setAppid(AppConstant.WEIXIN_SHANGHU_OPENPLATFORM_APPID);
        // 设置商户平台的id
        payPackage.setMch_id(AppConstant.WEIXIN_SHANGHU_MCHID);
        //设置商品描述信息(128)
        payPackage.setBody(productName);
        payPackage.setGoods_tag("");
        //附加数据
        payPackage.setAttach("orderid:11");
        //设置设备信息
        payPackage.setDevice_info("");
        //获取设备ip
        try {
        //终端IP
    String hostIp=NetworkUtil.getIpAddress(request);
    payPackage.setSpbill_create_ip(hostIp); 
    } catch (IOException e) {
    e.printStackTrace();
    payPackage.setSpbill_create_ip("127.0.0.1");
    }
        //设置总额 单位:分
        payPackage.setTotal_fee("100");
        //用户在系统中的id
        //payPackage.setOpenid(openId);
        payPackage.setTrade_type("APP");
        
        
        //随机字符串
        String randDomStr=UUID.randomUUID().toString().replace("-","");
        payPackage.setNonce_str(randDomStr);
        
        //设置定单号
        payPackage.setOut_trade_no(outTradeNo);
        
        String replyXml=PayUtils.generatePayNativeReplyXML(payPackage);
相关文章
相关标签/搜索