是否可以使用paypal API向任何paypal帐户(不仅仅是API凭证所有者)汇款.我知道使用IPN可以做到这一点,但我需要使用SOAP.
我是PayPal的新手,我想知道哪种方式可以实现PayPal,SOAP或NVP API.
这两者之间的主要区别是什么?
我正在尝试从PayPal的SOAP API 获取交易详细信息,但我遇到了来自PayPal的错误.它返回错误:
The transaction id is not valid
Run Code Online (Sandbox Code Playgroud)
我知道这是一个有效的交易ID,因为我能够使用PayPal NVP API获取交易详情,但可能我的SOAP请求格式不正确.我遵循了可以在Web上找到的PayPal SOAP API示例来构建SOAP XML但它们很小.我正在使用mac的PAW程序向PayPal的API发送SOAP请求,但这个问题应该可以使用HTTP客户端重现.
我尝试使用PayPal的REST API,但没有办法获取交易详情(例如姓名,电子邮件,支付金额,自定义字段).我还试图使用NVP(名称 - 值 - 对)API,我确实收到了交易细节,但它没有给我所有存储的交易自定义字段.当我登录PayPal并查看单个事务时,我可以看到该事务的所有自定义字段,因此我知道它们已被存储.
SOAP API是我最后的希望.
这是我正在使用的SOAP信封请求:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="urn:ebay:api:PayPalAPI" xmlns:ebl="urn:ebay:apis:eBLBaseComponents" xmlns:cc="urn:ebay:apis:CoreComponentTypes" xmlns:ed="urn:ebay:apis:EnhancedDataTypes">
<soapenv:Header>
<ns:RequesterCredentials>
<ebl:Credentials>
<ebl:Username>soap_api_username_here</ebl:Username>
<ebl:Password>soap_api_password_here</ebl:Password>
<ebl:Signature>soap_api_signature_here</ebl:Signature>
</ebl:Credentials>
</ns:RequesterCredentials>
</soapenv:Header>
<soapenv:Body>
<ns:GetTransactionDetailsReq>
<ns:GetTransactionDetailsRequest>
<ebl:Version>93.0</ebl:Version>
<ebl:TransactionID>8FX18476NR449891W</ebl:TransactionID>
</ns:GetTransactionDetailsRequest>
</ns:GetTransactionDetailsReq>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
这是我从PayPal SOAP API收到的响应:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cc="urn:ebay:apis:CoreComponentTypes" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:ed="urn:ebay:apis:EnhancedDataTypes" xmlns:ebl="urn:ebay:apis:eBLBaseComponents" xmlns:ns="urn:ebay:api:PayPalAPI">
<SOAP-ENV:Header>
<Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext" xsi:type="wsse:SecurityType"/>
<RequesterCredentials xmlns="urn:ebay:api:PayPalAPI" …
Run Code Online (Sandbox Code Playgroud) 好的,所以我的.NET项目中有服务引用.是的,我知道您现在可以访问代理类.
但是在过去,我习惯通过使用NVP的HttpWebRequest对象来做这件事,但从未尝试过使用WSDL并以这种方式发送SOAP请求.
我不太确定使用哪个对象来发送请求.不知道从哪里开始.我看过这些文档,但看不到.NET和PayPal的好例子.
除了WSDL与通过NVP API和查询字符串params发送HttpWebRequest之外,我真的不明白你发送请求的方式是否有所不同.它只是在Http上,所以你不能在SOAP API上使用HttpWebRequest(使用WSDL)吗?