SQL调用存储过程执行http访问比如微信支付、钉钉审批等
sp_configure ‘show advanced options‘, 1;
GO
RECONFIGURE;
GO
sp_configure ‘Ole Automation Procedures‘, 1;
GO
RECONFIGURE;
GO
EXEC sp_configure ‘Ole Automation Procedures‘;
GO
/1、建立表/
CREATE TABLE [dbo].[wexinCall](
[out_trade_no] varchar NULL,
[total_fee] varchar NULL,
[device_info] varchar NULL,
[spbill_create_ip] varchar NULL,
[notify_url] varchar NULL,
[trade_type] varchar NULL,
[result_code] varchar NULL,
[payresult_code] varchar NULL,
[transaction_id] varchar NULL
) ON [PRIMARY]
--商户订单号 out_trade_no
--订单金额 total_fee
--设备号 device_info
--终端IP spbill_create_ip
--通知地址 notify_url
--交易类型 trade_type
--业务结果 result_code
--客户支付结果 payresult_code
--微信支付订单号 transaction_id
/2、存储过程/
CREATE PROCEDURE P_GET_HttpRequestInfo(
@URL varchar(500),
@status int=0 OUT,
@returnText varchar(2000)=‘‘ OUT
)
AS
BEGIN
DECLARE @object int,@errSrc int
/初始化对/
EXEC @status = SP_OACreate ‘Msxml2.ServerXMLHTTP.3.0‘, @object OUT
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT
RETURN
END
/创建链接/
EXEC @status= SP_OAMethod @object,‘open‘,NULL,‘GET‘,@URL
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT
RETURN
END
EXEC @status=SP_OAMethod @object,‘setRequestHeader‘,‘Content-Type‘,‘application/x-www-form-urlencoded‘
/发起请求/
EXEC @status= SP_OAMethod @object,‘send‘,NULL
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT
RETURN
END
/获取返回/
EXEC @status= SP_OAGetProperty @object,‘responseText‘,@returnText OUT
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT
RETURN
END
END;
/3、调用HTTP/
DECLARE @returnText VARCHAR(500)
DECLARE @status int
DECLARE @urlStr VARCHAR(255)
SET @urlStr = ‘http://xxxxxxxxx:811/wx2.aspx?pay=2‘;
EXEC P_GET_HttpRequestInfo @urlStr, @status OUTPUT, @returnText OUTPUT;
select SUBSTRING(@returnText,0,charindex(‘<‘,@returnText)); ---打印