我们*有一个Web应用程序,由Delphi + Intraweb(用于前端/ Web代码管理)创建,用于管理订购流程。它获取订购信息,然后向authorize.net发送交易请求(主要使用他们的SIM sample code)。这很好用,并处理信用卡订单。
但是,当authorize.net将表单发送回中继响应URL(http://developer.authorize.net/guides/SIM/Receipt_Options/Relay_Response.htm)时,Intraweb应用程序会爆炸。我可以看到,使用TamperData,表单数据正在正确发送。她可以看到她的程序打开数据库连接,然后超时。
您是否有任何见解,指向示例代码的指示,或建议将其全部放入并转移到另一个解决方案?我们非常感谢上述任何一个。
*我们=一个老式的Delphi程序员/ DBA,他知道Delphi里面的东西,但是Intraweb“自动运行”而我,一个Java程序员和偶尔在该国另一边的PHP黑客,他们对Visual IDE过敏但是尝试过解释teh Internets&她的神秘面纱。对于这个特殊问题,我们似乎小于我们各部分的总和。
答案 0 :(得分:2)
我建议您使用Authorize.net的SOAP接口。我有一个Delphi / Intraweb应用程序来处理与authorize.net的付款和订阅,花了我1个小时来搞清楚。只需设置一个小型测试项目并从authorize.net导入wsdl,您就可以立即处理它们提供的所有内容。如果想尝试并遇到问题,我可以通过我的代码中的一些示例来帮助您。
答案 1 :(得分:2)
感谢@ioan的指点,我们已经启动并运行了一个SOAP解决方案。我的同事花了一些试验和错误来编写Pascal代码,但她把它传递给我发布,以防它节省了其他人的时间。以下是她最终的结果:
procedure TfrmSOAP.btnGetUnsettledReportClick(Sender: TObject);
var
X : ServiceSoap;
MyAuthentication : MerchantAuthenticationType;
MyRequest : GetUnsettledTransactionListRequestType;
aResponse : GetUnsettledTransactionListResponseType;
msg : string;
i : integer;
begin
inherited;
//Call the service
X := GetServiceSoap(false);
//create some variables/parameters to pass back and forth
MyAuthentication := MerchantAuthenticationType.Create;
MyRequest := GetUnsettledTransactionListRequestType.Create;
aResponse := GetUnsettledTransactionListResponseType.Create;
try
//assign values to the MerchantAuthenticationType parameter
MyAuthentication.name_ := APILoginTest;
MyAuthentication.transactionKey := TransKeyTest;
//request a list of unsettled transactions
aResponse := X.GetUnsettledTransactionList(MyAuthentication, MyRequest);
//check to see if the request was successful
if aResponse.resultCode <> messagetypeenum(0) then
begin
ShowMsg('Error');
ShowMsg(aResponse.messages[0].text);
end;
//step through the list, and display i, InvoiceNo, and LastName.
for i := 0 to high(aResponse.transactions) do
msg := msg + IntToStr(i) + ') ' + aResponse.transactions[i].invoiceNumber
+ ' '+ aResponse.transactions[i].lastName + #13;
ShowMsg(msg);
finally
MyRequest.Free;
MyAuthentication.Free;
aResponse.Free;
end;
end;
她还会发送提醒,以确保在运行测试与生产时使用正确的信息:“我在下载的WSDL中使用了URL。这适用于生产帐户。您必须使用不同的一个进行测试所以我不断得到一个空列表,并认为我的代码中有错误,没有得到回复。“
再次感谢所有的帮助和建议!
答案 2 :(得分:0)
Arcana(www.arcanatech.com)曾经有一个信用卡组件专门用于Intraweb和authorize.net。虽然配置使用所需的SSL有点棘手,但这段代码价格低廉,至今仍在6-8年前的应用程序中使用。