微信支付接入

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);
相關文章
相關標籤/搜索