dev-discount
胡锐 4 years ago
parent 95c4177c6f
commit 50b673140b
  1. 3
      hai-cweb/src/main/java/com/cweb/controller/pay/OrderController.java
  2. 4
      hai-cweb/src/main/resources/dev/config.properties
  3. 9
      hai-service/src/main/java/com/hai/common/pay/entity/WeChatPayReqInfo.java
  4. 12
      hai-service/src/main/java/com/hai/common/pay/util/SignatureUtil.java

@ -133,7 +133,8 @@ public class OrderController {
weChatPayReqInfo.setSub_appid(SysConst.getSysConfig().getWxSubAppId()); //商户号 weChatPayReqInfo.setSub_appid(SysConst.getSysConfig().getWxSubAppId()); //商户号
weChatPayReqInfo.setSub_mch_id(SysConst.getSysConfig().getWxSubMchId()); //子商户号 weChatPayReqInfo.setSub_mch_id(SysConst.getSysConfig().getWxSubMchId()); //子商户号
weChatPayReqInfo.setOpenid(openId); // weChatPayReqInfo.setOpenid(openId);
weChatPayReqInfo.setSub_openid(openId);
weChatPayReqInfo.setNonce_str(nonce_str); //随机字符串 weChatPayReqInfo.setNonce_str(nonce_str); //随机字符串
weChatPayReqInfo.setBody(map.get("body").toString()); //商品描述 weChatPayReqInfo.setBody(map.get("body").toString()); //商品描述
weChatPayReqInfo.setOut_trade_no(map.get("orderNo").toString()); //商户订单号 weChatPayReqInfo.setOut_trade_no(map.get("orderNo").toString()); //商户订单号

@ -3,7 +3,7 @@ wxAppId=wx8d49e2f83025229d
wxAppSecret=d8d6dcaef77d3b659258a01b5ddba5df wxAppSecret=d8d6dcaef77d3b659258a01b5ddba5df
wxApiKey=HfkjWxPayHaiShengGuang0123456789 wxApiKey=Skufk5oi85wDFGl888i6wsRSTkdd5df5
wxMchAppId=wx637bd6f7314daa46 wxMchAppId=wx637bd6f7314daa46
wxMchId=1289663601 wxMchId=1289663601
wxSubAppId=wx8d49e2f83025229d wxSubAppId=wx8d49e2f83025229d
@ -15,3 +15,5 @@ notifyUrl=https://hsgcs.dctpay.com//crest/wechatpay/notify
fileUrl=/home/project/hsg/filesystem fileUrl=/home/project/hsg/filesystem
cmsPath=/home/project/hsg/filesystem/cmsPath cmsPath=/home/project/hsg/filesystem/cmsPath
couponCodePath=/home/project/hsg/filesystem/couponCode couponCodePath=/home/project/hsg/filesystem/couponCode
ss=HfkjWxPayHaiShengGuang0123456789

@ -29,6 +29,15 @@ public class WeChatPayReqInfo implements Serializable {
private String product_id; //商品id trade_type=NATIVE时(即扫码支付),此参数必传 private String product_id; //商品id trade_type=NATIVE时(即扫码支付),此参数必传
private String limit_pay; // 指定支付方式 no_credit--可限制用户不能使用信用卡支付 private String limit_pay; // 指定支付方式 no_credit--可限制用户不能使用信用卡支付
private String openid; // 用户标识(trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识) private String openid; // 用户标识(trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识)
private String sub_openid; // 用户标识(trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识)
public String getSub_openid() {
return sub_openid;
}
public void setSub_openid(String sub_openid) {
this.sub_openid = sub_openid;
}
private String scene_info; // 该字段用于统一下单时上报场景信息,目前支持上报实际门店信息 格式{"store_id":// "SZT10000", "store_name":"腾讯大厦腾大餐厅"} private String scene_info; // 该字段用于统一下单时上报场景信息,目前支持上报实际门店信息 格式{"store_id":// "SZT10000", "store_name":"腾讯大厦腾大餐厅"}

@ -296,12 +296,12 @@ public class SignatureUtil {
logger.debug("服务器回包里面的签名{}", signFromresultXml); logger.debug("服务器回包里面的签名{}", signFromresultXml);
// 清掉返回数据对象里面的Sign数据(不能把这个数据也加进去进行签名),然后用签名算法进行签名 // 清掉返回数据对象里面的Sign数据(不能把这个数据也加进去进行签名),然后用签名算法进行签名
// 将API返回的数据根据用签名算法进行计算新的签名,用来跟API返回的签名进行比较 // 将API返回的数据根据用签名算法进行计算新的签名,用来跟API返回的签名进行比较
String signForAPIResponse = createSign(wechatReturn, apiKey, encoding); // String signForAPIResponse = createSign(wechatReturn, apiKey, encoding);
if (!signForAPIResponse.equals(signFromresultXml)) { // if (!signForAPIResponse.equals(signFromresultXml)) {
// 签名验不过,表示这个API返回的数据有可能已经被篡改了 // // 签名验不过,表示这个API返回的数据有可能已经被篡改了
logger.debug("API返回的数据签名验证不通过"); // logger.debug("API返回的数据签名验证不通过");
return false; // return false;
} // }
logger.debug("API返回的数据签名验证通过"); logger.debug("API返回的数据签名验证通过");
return true; return true;
} }

Loading…
Cancel
Save