哪位整合过外国的paypal支付接口呢?

zhuangjunx 2007-03-18 09:06:13
哪位整合过外国的paypal支付接口呢?
支付成功后,返回页面,并修改数据库里的订单状态,应该怎么做?
...全文
1102 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yurenjf 2007-03-22
  • 打赏
  • 举报
回复
Mark
wenle 2007-03-21
  • 打赏
  • 举报
回复
原理都一样,就看程序怎么实现,按照需求写就行了!
zhangxiaopin 2007-03-21
  • 打赏
  • 举报
回复
#region HTTP 方式

//****读取要发送凭证的XML文件
private string GetPZINFOXML()
{
//*****得到要读取文件哈
string XMLFileNamePath = Server.MapPath("../UploadFile/NCXML/" + hidNCXMLFileName.Value + ".xml");

//*****加载要发送的凭证文件
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(XMLFileNamePath);

//*****读取文件信息
string URLData = xmlDoc.InnerXml.ToString();

//*****返回文件信息
return URLData;
}

//*****第一种方法
private string HTTPPostPZ(string NCXmlContent, bool IsReadXML)
{
try
{
//****NC接收地址
string uriString = AppLibrary.AppGlobal.GetZWConfigValue("B_NC_URL");

//****需要提交的XML文件
string postString = "";

if (IsReadXML == true)
{
postString = GetPZINFOXML();
}
else
{
postString = NCXmlContent;
}

Encoding encoder = Encoding.GetEncoding("gb2312");

//****初始化WebClient
WebClient webClient = new WebClient();
webClient.Headers.Add("Content-Type", "text/xml; charset=gb2312");

//****将字符串转换成字节数组,转换XML为流得形式,进行相应的处理
byte[] postData = encoder.GetBytes(postString);

//****上传数据,返回页面的字节数组
byte[] responseData = webClient.UploadData(uriString, "POST", postData);

//*****返回的将字节数组转换成字符串(HTML)
string srcString = encoder.GetString(responseData);

//****得到NC处理返回得值
return srcString;
}
catch
{
return "";
}

}

#endregion

#region SOAP 方式

//****第二种方法
private string SOAPPostPZ(string NCXmlContent, bool IsReadXML)
{
//****NC接收地址
string uriString = AppLibrary.AppGlobal.GetZWConfigValue("B_NC_URL");

Encoding encoder = Encoding.GetEncoding("gb2312");

//****需要提交的XML文件
string soapMessage = "";

if (IsReadXML == true)
{
soapMessage = GetPZINFOXML();
}
else
{
soapMessage = NCXmlContent;
}

MSXML.XMLHTTPRequest xmlHttp = new MSXML.XMLHTTPRequest();

xmlHttp.open("post", uriString, false, null, null);
xmlHttp.setRequestHeader("Content-Type", "text/xml; charset=gb2312");
xmlHttp.setRequestHeader("SOAPAction", "http://tempuri.org/HelloWorld");

//****将字符串转换成字节数组,转换XML为流得形式,进行相应的处理
byte[] postData = encoder.GetBytes(soapMessage);

xmlHttp.send(postData);

//****得到NC处理结果的返回值
return xmlHttp.responseText.ToString();

}

#endregion

#endregion

#region 发送接口

//****传递接口
private void PZSendInterface(string mF_PZZB_ID)
{
//****清空己有的发送提示信息
hidSendMessage.Value = "";

int Securiyt = 0;
int Error = 0;
int Repeat = 0;

//****拆分传递的凭证
string[] DBParamters = mF_PZZB_ID.Split(',');

foreach (string F_PZZB_ID in DBParamters)
{
if (F_PZZB_ID != "")
{
//*****生成要发送的凭证NC XML接口
string BulidPZNCXmlFile = Build_PZ_XML(Convert.ToInt64(F_PZZB_ID), false);

string NCReturnString = "";
//****得到NC返回来的接口
NCReturnString = HTTPPostPZ(BulidPZNCXmlFile, false);

if (NCReturnString != "")
{
//****加载返回业的XML文件
XmlDocument XmlDoc = new XmlDocument();

//****加载NC 返回的XML文件
XmlDoc.LoadXml(NCReturnString);

System.Xml.XmlElement root = XmlDoc.DocumentElement;
XmlNode xmlNode = root.SelectSingleNode("//resultcode");

//****获取传递凭证,返回文档信息
XmlNode resultdescription = root.SelectSingleNode("//resultdescription");


//****得到返回来的状态哈
int resultcode = Convert.ToInt32(xmlNode.InnerText);

//****获取返回来的文件说明信息
string mresultdescription = resultdescription.InnerText.Replace("\r\n", "").Replace("\r", "").Replace("\n", "");


switch (resultcode)
{
case 1://*****发送成功

//****更新传递状态
AppLibrary.AppGlobal.UpdatePZSendState(Convert.ToInt64(F_PZZB_ID));

//****记录传凭成功条数
Securiyt++;
break;
case -1://*****发送重复
//****记录传递重复条数
Repeat++;
break;
default://*****没有发送成功哈
//*****记录传递失败条数
Error++;
break;

}

if (hidSendMessage.Value == "")
{
hidSendMessage.Value = "       " + mresultdescription;
}
else
{
hidSendMessage.Value += "<br>" + "      " + mresultdescription;
}

}
}
}

//*****调用凭证传递函数
Page.ClientScript.RegisterStartupScript(typeof(string), "HiddProc", "<script>HiddenProccess('" + Securiyt + "','" + Error + "','" +Repeat+"');</script>");

}

#endregion
zhuangjunx 2007-03-20
  • 打赏
  • 举报
回复
<%@LANGUAGE="VBScript"%>
<%

Dim authToken, txToken
Dim query
Dim objHttp
Dim sQuerystring
Dim sParts, iParts, aParts
Dim sResults, sKey, sValue
Dim i, result
Dim firstName, lastName, itemName, mcGross, mcCurrency

authToken = "Dc7P6f0ZadXW-U1X8oxf8_vUK09EHBMD7_53IiTT-CfTpfzkN0nipFKUPYy"
txToken = Request.Querystring("tx")

query = "cmd=_notify-synch&tx=" & txToken &
"&at=" & authToken

set objHttp = Server.CreateObject("Microsoft.XMLHTTP")
' set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
objHttp.open "POST", "http://www.paypal.com/cgi-bin/webscr", false
objHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHttp.Send query

sQuerystring = objHttp.responseText

If Mid(sQuerystring,1,7) = "SUCCESS" Then
sQuerystring = Mid(sQuerystring,9)
sParts = Split(sQuerystring, vbLf)
iParts = UBound(sParts) - 1
ReDim sResults(iParts, 1)
For i = 0 To iParts
aParts = Split(sParts(i), "=")
sKey = aParts(0)
sValue = aParts(1)
sResults(i, 0) = sKey
sResults(i, 1) = sValue

Select Case sKey
Case "first_name"
firstName = sValue
Case "last_name"
lastName = sValue
Case "item_name"
itemName = sValue
Case "mc_gross"
mcGross = sValue
Case "mc_currency"
mcCurrency = sValue
End Select
Next

Response.Write("<p><h3>Your order has been received.</h3></p>")
Response.Write("<b>Details</b><br>")
Response.Write("<li>Name: " & firstName & " " & lastName & "</li>")
Response.Write("<li>Description: " & itemName & "</li>")
Response.Write("<li>Amount: " & mcCurrency & " " & mcGross & "</li>")
Response.Write("<hr>")
Else
'log for manual investigation
Response.Write("ERROR")
End If

%>
在他的网站有看到asp的代码,但是没有asp.net的,谁帮忙转成c# asp.net的呀?
ztwz 2007-03-20
  • 打赏
  • 举报
回复
up
phisy 2007-03-20
  • 打赏
  • 举报
回复
其实支付原理都一样..
将参数传递过去...然后接收传回来的数据.
zhuangjunx 2007-03-19
  • 打赏
  • 举报
回复
有高手知道吗?
heimen 2007-03-19
  • 打赏
  • 举报
回复
只搞过国内的支付宝支付
zhuangjunx 2007-03-19
  • 打赏
  • 举报
回复
有高手知道吗?
AngryKitty 2007-03-19
  • 打赏
  • 举报
回复
不知道paypal。弄过国内的epay
zhuangjunx 2007-03-19
  • 打赏
  • 举报
回复
string strFormValues = Request.Form.ToString();
string strNewValue;
string strResponse;
// Create the request back
HttpWebRequest req = (HttpWebRequest) WebRequest.Create("https://www.paypal.com/cgi-bin/webscr");

// Set values for the request back
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
strNewValue = strFormValues + "&cmd=_notify-validate";
req.ContentLength = strNewValue.Length;
// Write the request back IPN strings
StreamWriter stOut = new StreamWriter (req.GetRequestStream(), System.Text.Encoding.ASCII);
stOut.Write(strNewValue);
stOut.Close();

// Do the request to PayPal and get the response
StreamReader stIn = new StreamReader(req.GetResponse().GetResponseStream());
strResponse = stIn.ReadToEnd();
stIn.Close();

// Confirm whether the IPN was VERIFIED or INVALID. If INVALID, just ignore the IPN
if (strResponse == "VERIFIED")
{
// Create the IpnTransaction

}
谁能用这个帮忙做个示例呢?

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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