贝恩斯 2021-06-15 21:35 采纳率: 0%
浏览 188
已结题

ASP写的微信支付退款接口,提交后显示错误800a01a8

ASP写的微信支付退款接口,API操作证书apiclient_cert.p12已经安装了,提交后显示错误800a01a8

,求助各路大神,如何解决?

---------------------------------------------------------------------------------------

Microsoft VBScript ����ʱ���� ���� '800a01a8'

ȱ�ٶ���: 'xml_dom.getelementsbytagname(...).item(...)'

/refund/lib/wx_class.asp���� 30

附wx_class.asp文件代码:

<%
dim apiurl,create_ip,nonce_str,timeStamp,xmlhttp,preCookies
preCookies      = "LEMAIKU"
create_ip       = GetIP()
nonce_str       = GetRnd(10)
timeStamp       = ToUnixTime(now())
xmlhttp         = "Msxml2.ServerXMLHTTP.6.0"
'xmlhttp         = "Msxml2.ServerXMLHTTP.3.0" '候选
json_str        = "2" '1 or 2

'微信申请退款
Function Refund()
	dim postData,signValue,post_url,sign,returnXml,xml_dom,return_code,result_code,get_prepay_id,attach
	post_url= "https://api.mch.weixin.qq.com/secapi/pay/refund"
	sign="appid="&getAppId&"&mch_id="&getMCHID&"&nonce_str="&nonce_str&"&out_trade_no="&out_trade_no&"&out_refund_no="&out_refund_no&"&total_fee="&total_fee&"&refund_fee="&refund_fee
	signValue=UCase(MD5(sign,"UTF-8"))
	postData="<xml>"&_
		"<appid><![CDATA["&getAppId&"]]></appid>"&_
		"<mch_id><![CDATA["&getMCHID&"]]></mch_id>"&_
		"<nonce_str><![CDATA["&nonce_str&"]]></nonce_str>"&_
		"<out_trade_no><![CDATA["&out_trade_no&"]]></out_trade_no>"&_
		"<out_refund_no><![CDATA["&out_refund_no&"]]></out_refund_no>"&_
		"<total_fee><![CDATA["&total_fee&"]]></total_fee>"&_
		"<refund_fee><![CDATA["&refund_fee&"]]></refund_fee>"&_
		"<sign><![CDATA["&signValue&"]]></sign>"&_
		"</xml>"
	returnXml = HttpSendSSL(post_url,postData)
	set xml_dom=Server.CreateObject("MSXML2.DOMDocument")
	xml_dom.loadXml(returnXml)
	return_code=xml_dom.getelementsbytagname("return_code").item(0).text
	if return_code="FAIL" then
		'协议级错误
		get_prepay_id=xml_dom.getelementsbytagname("return_msg").item(0).text
		response.Write("协议级接口调用错误:"&get_prepay_id)
		response.End()
	else
		result_code=xml_dom.getelementsbytagname("result_code").item(0).text
		if result_code="FAIL" then
		'业务级错误
			get_prepay_id=xml_dom.getelementsbytagname("err_code_des").item(0).text
			response.Write("业务级支付错误:"&get_prepay_id)
			response.End()
		else
			if return_code="SUCCESS" and result_code="SUCCESS" then
				'数据正常
				Refund=xml_dom.getelementsbytagname("code_url").item(0).text
			end if
		end if
	end if
End Function

'引用通用过程文件
%>
<!--#include file="wx_function.asp"-->
  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2021-06-21 22:09
    关注

    returnXml = HttpSendSSL(post_url,postData)
    Response.Write returnXml '打印返回的内容看看返回了什么内容。感觉返回数据有问题,不存在return_code,得到空节点在调用item(0).text就出错了

    还有HttpSendSSL方法是不是使用了on error resume next 容错了,HttpSendSSL方法有问题导致返回空字符串

    asp用utf-8编码,默认错误是ansi格式的,会导致乱码,按照这个文章配置下错误,将错误信息显示出来,方便调试

    http://www.w3dev.cn/article/20150108/asp-error-display-Garbled.aspx

     

    文章太老了。。500-100.asp在win2008以上路径应该是C:\inetpub\custerr\zh-CN这个,操作方法一样,就是500错误提示文件位置不一样

    评论

报告相同问题?

悬赏问题

  • ¥20 SQL server表计算问题
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出