微信APP支付

2021-10-01 15:10:42 字數 3047 閱讀 3574

final string mchid,

final string notifyurl,

final string outtradeno,

final string noncestr,

final string body,

final string productid,

final string totalfee,

final paytraderecord paytraderecord) ", signparams);

// 簽名

final string sign = wxpayutil.createsign(signparams);

signparams.put("sign", sign);

final string parameter = wxpayutil.arraytoxml(signparams);

final string url = wxpayconfig.wx_pay_url;

logger.info("******paymentservice(getpaysignwx)******parameter:{},url:{}", parameter, url);

final string returnstr = wxpayutil.urlpost(url, parameter);

logger.info("******paymentservice(getpaysignwx)******returnstr:{}", returnstr);

if (check.notempty(returnstr))

logger.info("******paymentservice(getpaysignwx)******prepayid:{}", prepayid);

returnparams.put("noncestr", noncestr);

returnparams.put("package", "sign=wxpay");

returnparams.put("partnerid", mchid);

returnparams.put("prepayid", prepayid);

returnparams.put("timestamp", timestamp);

string returnsign = wxpayutil.createsign(returnparams);

logger.info("--paymentservice--returnsign:{}", returnsign);

// 定義返回物件

final mapmap = new hashmap<>(16);

map.put("type", paymentconstants.pay_type_wx);

map.put("mchid", mchid);

map.put("prepayid", prepayid);

map.put("noncestr", noncestr);

map.put("timestamp", timestamp);

map.put("sign", returnsign);

returnresult = jsonobject.tojsonstring(map);}}

} catch (final exception e)

logger.info("--paymentservice--returnresult:{}", returnresult);

return returnresult;

}public final class wxpayutil

public void setparameters(final sortedmapparameters)

/*** 建立md5摘要,規則是:按引數名稱a-z排序,遇到空值的引數不參加簽名

** @param signparams 引數物件

* @return 驗籤結果字串

*/public static string createsign(final sortedmapsignparams)

}logger.info("--createsign--sb.tostring():{}--", sb.tostring());

final string sign = md5util.ge***5(sb.tostring()).touppercase();

return sign;

}/**

** @param arr 引數物件

* @return xml字串

*/public static string arraytoxml(final sortedmaparr)

xml += "";

return xml;

}/**

* xml格式字串轉換為map

** @param strxml xml字串

* @return xml資料轉換後的map

* @throws exception

*/public static mapxmltomap(final string strxml) throws exception

}try catch (final exception ex)

} catch (final exception ex)

return data;

}/**

* post請求呼叫發起

** @param urlstr 請求位址

* @param param 引數物件

* @return 請求結果

*/public static string urlpost(final string urlstr, final string param)

} catch (final malformedurlexception e) catch (final ioexception e) finally

if (in != null)

} catch (final ioexception ex)

}return sb.tostring();

}/**

* 私有構造方法

*/private wxpayutil() }

微信app支付

商戶id public static final string partner id 14698sdfs402dsfdew402 常量固定值 public static final string grant type client credential 獲取預支付id的介面url public st...

微信app支付

文件 arr mchid mchid,nonce str str random 32 隨機數 partner trade no order id,自己定義乙個不重複訂單號 check name no check desc desc,spbill create ip request getclient...

微信APP支付demo

use think controller class wxpaycontroller extends homecontroller public function wxpay outtradeno order info tag time totalfee order info total money...