Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Paypal API沙盒DoAuthorization()什么是事务id?_C#_Api_Paypal - Fatal编程技术网

C# Paypal API沙盒DoAuthorization()什么是事务id?

C# Paypal API沙盒DoAuthorization()什么是事务id?,c#,api,paypal,C#,Api,Paypal,我们使用贝宝向用户收费。现在,我们对BillUser进行了API调用,以在未经授权的情况下向用户收费。我们想将此更改为先授权后收费。 此外,我们不希望将用户重定向到Paypal页面,我们为每个接受的用户提供了计费协议id。 我在研究Paypal API时发现了DoAuthorization()方法,它可以满足我们的需要。但是,这需要一个事务id作为输入。如何获取此事务id 我可以使用Nuget安装包PaypalMerchantSdk将API更新为最新版本,并使用DoReferenceTransa

我们使用贝宝向用户收费。现在,我们对BillUser进行了API调用,以在未经授权的情况下向用户收费。我们想将此更改为先授权后收费。 此外,我们不希望将用户重定向到Paypal页面,我们为每个接受的用户提供了计费协议id。 我在研究Paypal API时发现了DoAuthorization()方法,它可以满足我们的需要。但是,这需要一个事务id作为输入。如何获取此事务id


我可以使用Nuget安装包PaypalMerchantSdk将API更新为最新版本,并使用DoReferenceTransaction()方法来授权/捕获付款。但是,问题是它要求API签名。我们拥有适用于沙箱和实时环境的API证书。我们不想使用API签名。是否有使用API证书并调用此方法而不使用签名的C#示例?

GetExpressCheckoutDetails API操作获取有关快速签出事务的信息。您必须使用方法GetExpressCheckoutDetails和参数PAYMENTREQUEST\u n\u TRANSACTIONID:

最多10个并行付款请求的事务ID。您最多可以指定10笔付款,其中n是介于0和9之间的数字,包括0和9。

字符长度和限制:除订单类型的事务外,17个字符的字符长度为19。 此字段自64.0版起可用


据我所知,我正在尝试完成类似的任务,您必须使用DoDirectPayment并将paymentaction设置为Authorization。这将向您发回一个交易id。一旦您拥有该id,您可以将其发送到DoAuthorization


然而,我遇到的问题是,交易id仍然返回无效。希望此帮助如果您找到解决方案,请共享它。谢谢

那么,您使用的是ReferenceTransaction还是ExpressCheckout?我有一个ReferenceTransaction id,只想现在使用它进行授权,稍后再捕获。问题是我们使用的是一个旧的paypal程序集,它没有任何与引用事务相关的方法。另外,Paypal示例中指定的SetExpressCheckout采用了引用事务id,但我们拥有的事务id没有采用此参数。我可以使用Nuget安装包PaypalMerchantSdk将API更新为最新的API,并使用DoReferenceTransaction()方法来授权/捕获付款。但是,问题是它要求API签名。我们拥有适用于沙箱和实时环境的API证书。我们不想使用API签名。是否有一个使用API证书并调用此方法而无需签名的C#示例?我找不到任何关于如何使用证书的示例—仅需签名,如果我发现了什么,我会让您知道的谢谢您的回复!但是,我认为这是不可能的。我想使用参考计费协议id进行此授权。此外,我不希望在此网站上与Paypal网站进行任何用户交互。事实上,此授权是在用户下订单后异步进行的。ExpressCheckout要求用户对交易进行身份验证,这意味着我们可能必须将其重定向到Paypal网站(这是不需要的)。此外,我们正在使用一个旧的Paypal Dll(那里的参考是Paypal_base.Dll V0.0)。这没有参数PAYMENTREQUEST\u n\u TRANSACTIONID。基本上,我需要创建一个新事务,并将事务id传递给doAuthorization()方法。但是,我不知道如何创建此事务。如果我尝试使用金额为0的BillUser()创建事务,由于内部错误,它将被拒绝。必须先设置方法SetExpressCheckout!请参见此示例: