支付签名appid和商户错误,明明对的
296 浏览2019年09月16日作者:ffreeway233

问题描述:支付签名返回提示appid或者商户错,但是我看了是对的。我之后前端是要用pay()方法调用支付,是不是参数不对,有的不需要

报错截图、相关bug:

返回信息

{"response":{

"code":"40007","msg":"Service Internal Error",

"sub_code":"GW.THIRD_PARTY_ERROR",

"sub_msg":"Gateway call third party err: merchantV2 appId"},

"sign":"y3bRQYPreOC9hxZdkZpCxsKSWaxBbaIxf6kR8hHBHVn4EXcBU12Ym1mMsV17RX3DCBJWAZe8R8LVKWkRByUI4DiE9srmoDWz1ZSBWOeFN3cmqWzlxKf2p9BGfjhgdSbF1Vi2YkqpkBMVvSaE85XCOjaEZxGMELyIGnxm4etLOqM="}

我的签名内容是这样的,里面的支付链接太长了我去掉了一段

<xml>

<app_id>800170374907</app_id>

<biz_content>{

"out_order_no":"515686279201055",

"uid":".PyeAGPVbp3ffE-7",

"merchant_id":"1900017037",

"total_amount":1,

"currency":"CNY",

"subject":"麻雀闪电测试支付",

"body":"测试产品,非土豪勿拍",

"trade_time":"1568627920336",

"valid_time":"3000",

"payment_type":"direct",

"product_code":"pay",

"notify_url":"https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx16175840",

"alipay_url":"alipay_sdk=alipay-sdk-java-3.4.27.ALL&app_id=2018061460417275&biz_content=%7B%",

"wx_url":"https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx1617584026",

"wx_type":"MWEB"

}

</biz_content>

<charset>utf-8</charset>

<method>tp.trade.create</method>

<sign><![CDATA[08CAD00A95D56DB557A8CED861832CC7]]></sign>

<sign_type>MD5</sign_type>

<timestamp>1568627920554</timestamp>

<version>2.0</version>

</xml>

这是小程序里的支付参数

下面的是我的java代码

String url = "https://tp-pay.snssdk.com/gateway";

//头条支付相关

SortedMap<Object, Object> parameters = new TreeMap<Object, Object>();

JSONObject jsonObject2 = new JSONObject();

jsonObject2.put("out_order_no", "515686279201055");

jsonObject2.put("uid", ".PyeAGPVbp3ffE-7");

jsonObject2.put("merchant_id", "1900017037");

jsonObject2.put("total_amount",1);

jsonObject2.put("currency", "CNY");

jsonObject2.put("subject", "测试支付");

jsonObject2.put("body", "测试支付订单");

jsonObject2.put("trade_time", “1568627920554”);

jsonObject2.put("valid_time", "3000");

jsonObject2.put("payment_type", "direct");

jsonObject2.put("product_code", "pay");

jsonObject2.put("notify_url", “https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx16175840”);

jsonObject2.put("alipay_url", "alipay_sdk=alipay-sdk-java-3.4.27.ALL&app_id=20180614604172");

jsonObject2.put("wx_url", “https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx1617584026”);

jsonObject2.put("wx_type", "MWEB");

parameters.put("biz_content", jsonObject2.toString());

parameters.put("method", "tp.trade.create");

parameters.put("charset", "utf-8");

parameters.put("version", "2.0");

parameters.put("app_id", "800170374907");

parameters.put("sign_type", "MD5");

parameters.put("timestamp",“1568627920554”);

//生成sign 第三个参数是商户secret

String sign = PayCommonUtil.createSign("UTF-8", parameters,"jcz1u0dr762d61meqhmsktw73frpi0n80202n2cw");

parameters.put("sign", sign);

//转换成XML

String requestXML = PayCommonUtil.getRequestXml(parameters);

System.out.println(requestXML);

log.info("xcx"+requestXML);

String result = CommonUtil.httpsRequest(url, "POST", requestXML);

appid什么都是对的呀,有大佬知道吗

最后一次编辑于 2020 年 01 月 08 日
1 条评论

相关文章

专题推荐

热门文章

热门问答