微信支付时提示xml格式错误,求解决

q727455218 2015-11-20 06:45:45
<xml>
<appid>wx842b83889bd3</appid>
<attach>1.01</attach>
<body>流量卡充值</body>
<device_info>WEB</device_info>
<fee_type>CNY</fee_type>
<goods_tag>WXG</goods_tag>
<mch_id>1274449601</mch_id>
<nonce_str>1A4I1GQAM0079E672879000031AFA396</nonce_str>
<notify_url>http://www.baidu.com/ss/pay.jsp</notify_url>
<openid>oxljPs4yHqfSNQLvKkDJv_U</openid>
<out_trade_no>1A4I1GQAM0089E6728790000B65592A7</out_trade_no>
<product_id>1A4I1GQAM0099E6728790000E8296BBC</product_id>
<spbill_create_ip>111.40.122.158</spbill_create_ip>
<time_expire>20151120170238</time_expire>
<time_start>20151120165238</time_start>
<total_fee>1.01</total_fee>
<trade_type>JSAPI</trade_type>
<sign>6F984CCDEE90B7C66B95956410620157</sign>
</xml>

返回的是{"xml":{"return_msg":"XML格式错误","return_code":"FAIL"}}
...全文
5332 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
一级PHP码农 2017-05-18
  • 打赏
  • 举报
回复
楼主,求解决方法,我的是post传的,也是utf8的(通过记事本转义过utf8),但还是报错xml错误!怎么解决?求搭救
qq_36379229 2017-03-01
  • 打赏
  • 举报
回复
楼主,我也遇到了同样的问题,请问你怎么解决的?
sanyueweiba 2016-11-25
  • 打赏
  • 举报
回复
六楼的方法可行的,确保的Pos方法提交的xml无误后,确定编码格式UTF 8,
China小子 2016-10-13
  • 打赏
  • 举报
回复
6楼怎么解决的,可以再具体一点么?更换请求代码什么意思
「已注销」 2016-04-16
  • 打赏
  • 举报
回复
我最近开发微信支付也碰到了这个问题,一直以为是XML格式有问题,在网上验证格式也没问题,后经过反复检查终于找到了问题,是由于模拟https发送请求的代码有问题,造成发送给微信支付服务器的XML有乱码。解决办法就是更换请求代码,同时必须保证是请求方式是post,编码格式是utf-8。欢迎大家一起交流!
送外卖 2016-03-31
  • 打赏
  • 举报
回复
微信倒是返回是xml还是json
wen200507048 2016-02-19
  • 打赏
  • 举报
回复
我也是啊,这个问题怎么解决,每次碰到腾讯的接口都是要上吊的感觉
baidu_27256999 2015-12-17
  • 打赏
  • 举报
回复
怎么样楼主?我也遇到了同样的问题 您解决了么
q727455218 2015-11-23
  • 打赏
  • 举报
回复
能不能给个例子
lwlyda999 2015-11-22
  • 打赏
  • 举报
回复
XML没有根元素
PB新大陆星POS扫码支付源码,调用C#动态库,简单实现接口,采用POWERBUILDER9.0开发 string ls_url string ls_data string ls_dd string ls_zfqd //【交易类型--传入平台用】 if rb_1.checked = true then ls_zfqd = "WXPAY" end if if rb_2.checked = true then ls_zfqd = "ALIPAY" end if if rb_3.checked = true then ls_zfqd = "YLPAY" end if //【生成请地址===从配置参数中维护请地址的一部分】 ls_url = gs_pos_requesturl + "sdkBarcodePay.json" //【判断输入金额是否符合要】 if dec(em_1.text) <= 0.00 then messagebox("系统提示【MYSOFT】","所输金额不正确!~r~n请重新输入!") em_1.setfocus() return end if //【判断商户订单号是否为空】 if sle_4.text = "" then messagebox("系统提示【MYSOFT】","订单号不能为空!") return end if //【判断是否扫描付款码】 if sle_code.text = "" then messagebox("系统提示【MYSOFT】","付款码不能为空!") sle_code.setfocus() return end if //【判断是否扫描付款码】 if len(sle_code.text) = 0 then messagebox("系统提示【MYSOFT】","请扫描服务对象付款码... ...") sle_code.setfocus() return -1 end if //【判断订单号是否为空】 if len(sle_4.text) = 0 then messagebox("系统提示【MYSOFT】","订单号不能为空!") sle_4.setfocus() return -1 end if //【初始化伪随机数发生器,让应用程序每次运用不同的伪随机数序列。】 randomize(0) //【清除is_keys[] is_value[]】 inv_wxpay.of_clear() //====================生成公共请参数============================================================== //【操作系统:3-直连】 inv_wxpay.of_add_pos("opSys","3") //【字符集:00-GBK】 inv_wxpay.of_add_pos("characterSet","00") //【机构号,从配置参数维护】 inv_wxpay.of_add_pos("orgNo",gs_pos_orgno) //【商户号,从配置参数维护】 inv_wxpay.of_add_pos("mercId",gs_pos_mercid) //【设备号,从配置参数维护】 inv_wxpay.of_add_pos("trmNo",gs_pos_trmno) //【商户单号,不能重复,若重复则返回:数据库错误】 inv_wxpay.of_add_pos("tradeNo",sle_4.text) //【设备端交易间:yyyymmddhhmmss】 inv_wxpay.of_add_pos("txnTime",string(now(),"yyyymmddhhmmss")) //【签名方式:MD5】 inv_wxpay.of_add_pos("signType","MD5") //【版本号:默认V1.0.0】 inv_wxpay.of_add_pos("version","V1.0.0") //==================生成商户主扫请参数============================================================ //【实付金额:分为单位】 inv_wxpay.of_add_pos("amount",string(long(dec(em_1.text) * 100))) //【订单总金额:分为单位】 inv_wxpay.of_add_pos("total_amount",string(long(dec(em_1.text) * 100))) //【扫码支付授权码】 inv_wxpay.of_add_pos("authCode",sle_code.text) //【支付渠道:WXPAY,ALIPAY,YLPAY】 inv_wxpay.of_add_pos("payChannel",ls_zfqd) //【请参数数据签名,并生成JSON格式数据】 mle_1.text = inv_wxpay.of_get_json() ls_data = trim(mle_1.text) mle_2.text = "" //【POST数据到平台,并接收返回数据:JSON格式】 mle_2.text = inv_wxpay.of_post_pos(ls_url,ls_data) //【返回JSON数据转换为XML数据,用于交易解析】 mle_2.text = inv_wxpay.of_json_to_xml(mle_2.text) //===================================以下判断订单交易情况============================================= if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "S" then if dw_2.rowcount() = 1 then //【请数据XML】 dw_2.object.in_xml[1] = mle_1.text //【交易金额】 dw_2.object.amount[1] = dec(em_1.text) //【交易间】 dw_2.object.zf_date_wx[1] = gf_xml_resolve_pos(mle_2.text,"sysTime") //【订单状态--保存本地数据库】 dw_2.object.trade_state[1] = "支付成功" //【支付渠道订单号,可用于退款】 dw_2.object.dd_code[1] = gf_xml_resolve_pos(mle_2.text,"orderNo") //【付款码】 dw_2.object.fk_code[1] = sle_code.text dw_2.object.zffs[1] = 1 //【更新交易到数据库】 if dw_2.update() = 1 then commit using sqlca; dw_2.retrieve(trim(sle_4.text)) else rollback using sqlca; end if end if //【执行查单操作】 cb_21.triggerevent(clicked!) //【刷新本地数据】 cb_7.triggerevent(clicked!) return end if //========================================以下判断交易执行情况================================================== if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "A" then messagebox("支付提示【MYSOFT】","状态:【A-等待授权】~n~n【特别注意】:请等候服务对象输入密码确认成功后点[确定]...~n~n还可通过【查询订单状态】检查订单支付情况!") if dw_2.rowcount() = 1 then dw_2.object.in_xml[1] = mle_1.text dw_2.object.amount[1] = dec(em_1.text) dw_2.object.dd_code[1] = "" dw_2.object.fk_code[1] = sle_code.text dw_2.object.zffs[1] = 1 dw_2.object.trade_state[1] = "订单未支付" if dw_2.update() = 1 then commit using sqlca; dw_2.retrieve(trim(sle_4.text)) else rollback using sqlca; end if end if cb_21.triggerevent(clicked!) cb_7.triggerevent(clicked!) return end if if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "A" then messagebox("支付提示【MYSOFT】","订单等待授权~n~n支付单号:【" + gf_xml_resolve_pos(mle_2.text,"orderNo") + "】~n~n支付状态:【" + gf_xml_resolve_pos(mle_2.text,"result") + "】~n~nA-等待授权,S-交易成功,F-交易失败,Z-交易未知,D-订单已撤销!~n~n请重新支付!~n~n系统返回message:" + inv_wxpay.of_utf8togb3212(gf_xml_resolve_pos(mle_2.text,"message"))) return end if if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "F" then messagebox("支付提示【MYSOFT】","订单交易失败~n~n支付单号:【" + gf_xml_resolve_pos(mle_2.text,"orderNo") + "】~n~n支付状态:【" + gf_xml_resolve_pos(mle_2.text,"result") + "】~n~nA-等待授权,S-交易成功,F-交易失败,Z-交易未知,D-订单已撤销!~n~n请重新支付!~n~n系统返回message:" + inv_wxpay.of_utf8togb3212(gf_xml_resolve_pos(mle_2.text,"message"))) return end if if gf_xml_resolve_pos(mle_1.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_1.text,"result") = "D" then
B2C商城网站管理系统集城市分站,云储存,三级分销,微信公众号,组合套餐,多人拼团等众多功能于一身的营销型商城管理系统。B2C商城网站管理系统 1.1 更新日志:2019-10-2501.城市分站增加可自定义优化标题.关键字和描述功能;02.增加对账户绑定的限制:限制一个账户只能绑定一个第三方的同类账户;03.修改了文章系统设置权限后提示用户的方式;04.附件上传增加分组功能;05.调整了手机版下单收货地址的选择方式;06.调整数据统计里会员消费排行的算法;07.附件管理界面排版优化;08.修改了百度Xml地图插件;09.将城市分站的数据从区域表中独立出来互不影响;10.新增可开启微信商城模式(开启后在微信里访问不需要注册或登录)。01.修复了手机站订单没有写备注的Bug;02.修复了微信分享未过滤掉{$city}标签的Bug;03.修复了订单付款收不到短信的Bug;04.修复了分销金额没有计算购买数量的Bug;05.修复了后台删除会员头像未清理数据的Bug;06.修复了在线支付后,管理员收不到模板消息的Bug;07.修复了QQ客服没按格式填写出错的Bug;08.修复了关闭商城导致后台无法使用的Bug;09.修复了商品分类内容模板自定义后手机站无效的Bug;10.修复了手机站商品内容页点规格后无法操作的Bug;11.修复了删除已退款的订单造成销量为负数的Bug;12.修复了拼团管理里查看订单号的链接错误的Bug;13.修复了会员统计里,点会员名称无法打开URL。

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧