争怎路由网:是一个主要分享无线路由器安装设置经验的网站,汇总WiFi常见问题的解决方法。

微信小程序支付接口的案例详细说明

时间:2024/3/3作者:未知来源:争怎路由网人气:

return_code.equals(return_code)){ // 业务结果 String prepay_id = map.get("prepay_id");//返回的预付单信息 String nonceStr=UUIDHexGenerator.generate(); JsonObject.put("nonceStr", nonceStr); JsonObject.put("package", "prepay_id="+prepay_id); Long timeStamp= System.currentTimeMillis()/1000; JsonObject.put("timeStamp", timeStamp+""); String stringSignTemp = "appId="+appid+"&nonceStr=" + nonceStr + "&package=prepay_id=" + prepay_id+ "&signType=MD5&timeStamp=" + timeStamp; //再次签名 String paySign=PayUtil.sign(stringSignTemp, "&key=替换为自己的密钥", "utf-8").toUpperCase(); JsonObject.put("paySign", paySign); jsonArray.add(JsonObject); } return "pay"; } public String getTotal_fee() { return total_fee; } public void setTotal_fee(String total_fee) { this.total_fee = total_fee; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public JSONArray getJsonArray() { return jsonArray; } public void setJsonArray(JSONArray jsonArray) { this.jsonArray = jsonArray; } public String getDetail() { return detail; } public void setDetail(String detail) { this.detail = detail; } public String getAttach() { return attach; } public void setAttach(String attach) { this.attach = attach; } public String getTime_start() { return time_start; } public void setTime_start(String time_start) { this.time_start = time_start; } public String getTime_expire() { return time_expire; } public void setTime_expire(String time_expire) { this.time_expire = time_expire; } public String getOpenid() { return openid; } public void setOpenid(String openid) { this.openid = openid; } }
  • 后台业务逻辑涉及到的工具类及参数封装类

MessageUtil 
package cn.it.shop.util;import java.io.IOException;import java.io.Writer;import java.util.HashMap;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.core.util.QuickWriter;import com.thoughtworks.xstream.io.HierarchicalStreamWriter;import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;import com.thoughtworks.xstream.io.xml.XppDriver;public class MessageUtil {

    public static HashMap<String,String> parseXML(HttpServletRequest request) throws Exception, IOException{
        HashMap<String,String> map=new HashMap<String,String>();        // 通过IO获得Document
        SAXReader reader = new SAXReader();
        Document doc = reader.read(request.getInputStream());        //得到xml的根节点
        Element root=doc.getRootElement();
        recursiveParseXML(root,map);        return map;
    }    private static void recursiveParseXML(Element root,HashMap<String,String> map){        //得到根节点的子节点列表
        List<Element> elementList=root.elements();        //判断有没有子元素列表
        if(elementList.size()==0){
            map.put(root.getName(), root.getTextTrim());
        }        else{            //遍历
            for(Element e:elementList){
                recursiveParseXML(e,map);
            }
        }
    }    private static XStream xstream = new XStream(new XppDriver() {        public HierarchicalStreamWriter createWriter(Writer out) {            return new PrettyPrintWriter(out) {                // 对所有xml节点都增加CDATA标记
                boolean cdata = true;                public void startNode(String name, Class clazz) {                    super.startNode(name, clazz);
                }                protected void writeText(QuickWriter writer, String text) {                    if (cdata) {
                        writer.write("<![CDATA[");
                        writer.write(text);
                        writer.write("]]>");
                    } else {
                        writer.write(text);
                    }
                }
            };
        }
    });    public static String messageToXML(PaymentPo paymentPo){
        xstream.alias("xml",PaymentPo.class);        return xstream.toXML(paymentPo);
    }
}

PaymentPo//封装支付参数实体package cn.it.shop.util;/** 
* @author * @version 创建时间:2017年1月21日 下午4:20:52 
* 类说明 
*/public class PaymentPo {
    private String appid;//小程序ID
    private String mch_id;//商户号
    private String device_info;//设备号
    private String nonce_str;//随机字符串
    private String sign;//签名
    private String body;//商品描述  
    private String detail;//商品详情    
    private String attach;//附加数据
    private String out_trade_no;//商户订单号
    private String fee_type;//货币类型
    private String spbill_create_ip;//终端IP
    private String time_start;//交易起始时间
    private String time_expire;//交易结束时间 
    private String goods_tag;//商品标记
    private String total_fee;//总金额
    private String notify_url;//通知地址    
    private String trade_type;//交易类型    
    private String limit_pay;//指定支付方式
    private String openid;//用户标识
    public String getAppid() {        return appid;
    }    public void setAppid(String appid) {        this.appid = appid;
    }    public String getMch_id() {        return mch_id;
    }    public void setMch_id(String mch_id) {        this.mch_id = mch_id;
    }    public String getNonce_str() {        return nonce_str;
    }    public void setNonce_str(String nonce_str) {        this.nonce_str = nonce_str;
    }    public String getSign() {        return sign;
    }    public void setSign(String sign) {        this.sign = sign;
    }    public String getBody() {        return body;
    }    public void setBody(String body) {        this.body = body;
    }    public String getOut_trade_no() {        return out_trade_no;
    }    public void setOut_trade_no(String out_trade_no) {        this.out_trade_no = out_trade_no;
    }    public String getTotal_fee() {        return total_fee;
    }    public void setTotal_fee(String total_fee) {        this.total_fee = total_fee;
    }    public String getNotify_url() {        return notify_url;
    }    public void setNotify_url(String notify_url) {        this.notify_url = notify_url;
    }    public String getTrade_type() {        return trade_type;
    }    public void setTrade_type(String trade_type) {        this.trade_type = trade_type;
    }    public String getOpenid() {        return openid;
    }    public void setOpenid(String openid) {        this.openid = openid;
    }    public String getSpbill_create_ip() {        return spbill_create_ip;
    }    public void setSpbill_create_ip(String spbill_create_ip) {        this.spbill_create_ip = spbill_create_ip;
    }    public String getDevice_info() {        return device_info;
    }    public void setDevice_info(String device_info) {        this.device_info = device_info;
    }    public String getDetail() {        return detail;
    }    public void setDetail(String detail) {        this.detail = detail;
    }    public String getAttach() {        return attach;
    }    public void setAttach(String attach) {        this.attach = attach;
    }    public String getFee_type() {        return fee_type;
    }    public void setFee_type(String fee_type) {        this.fee_type = fee_type;
    }    public String getTime_start() {        return time_start;
    }    public void setTime_start(String time_start) {        this.time_start = time_start;
    }    public String getTime_expire() {        return time_expire;
    }    public void setTime_expire(String time_expire) {        this.time_expire = time_expire;
    }    public String getGoods_tag() {        return goods_tag;
    }    public void setGoods_tag(String goods_tag) {        this.goods_tag = goods_tag;
    }    public String getLimit_pay() {        return limit_pay;
    }    public void setLimit_pay(String limit_pay) {        this.limit_pay = limit_pay;
    }

}
PayUtilpackage cn.it.shop.util;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.commons.codec.digest.DigestUtils;/**
 * @author 
 * @version 创建时间:2017年1月17日 下午7:46:29 类说明
 */public class PayUtil {
    /**
     * 签名字符串
     * @param text需要签名的字符串
     * @param key 密钥
     * @param input_charset编码格式
     * @return 签名结果
     */
    public static String sign(String text, String key, String input_charset) {
        text = text + key;        return DigestUtils.md5Hex(getContentBytes(text, input_charset));
    }    /**
     * 签名字符串
     *  @param text需要签名的字符串
     * @param sign 签名结果
     * @param key密钥
     * @param input_charset 编码格式
     * @return 签名结果
     */
    public static boolean verify(String text, String sign, String key, String input_charset) {
        text = text + key;
        String mysign = DigestUtils.md5Hex(getContentBytes(text, input_charset));        if (mysign.equals(sign)) {            return true;
        } else {            return false;
        }
    }    /**
     * @param content
     * @param charset
     * @return
     * @throws SignatureException
     * @throws UnsupportedEncodingException
     */
    public static byte[] getContentBytes(String content, String charset) {        if (charset == null   

关键词:微信小程序支付接口的案例详细说明




Copyright © 2012-2018 争怎路由网(http://www.zhengzen.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版