2015-11-13 31 views
1

我們使用Paypal爲用戶收費。目前,我們已經通過API調用BillUser來未經授權向用戶收費。我們希望將此更改爲首先授權並在稍後時間進行收費。 此外,我們不希望將用戶重定向到Paypal頁面,並且我們爲每個接受的用戶開具了「結算協議」ID。 我正在查看PayPal API並找到了可以幫助我們需要的DoAuthorization()方法。但是,這需要一個事務ID作爲輸入。我如何獲得這個交易ID?Paypal API沙箱DoAuthorization()什麼是事務ID?

我可以使用Nuget install-package PaypalMerchantSdk將API更新到最新版本,並使用DoReferenceTransaction()方法來授權/捕獲付款。但是,問題在於它要求API簽名。我們擁有沙箱和現場環境的API證書。我們不想使用API​​簽名。有沒有C#使用API​​證書和調用這個方法沒有簽名的例子?

+0

所以,你使用的是ReferenceTransaction或ExpressCheckout? –

+0

https://developer.paypal.com/docs/classic/express-checkout/ht_ec-singleAuthPayment-curl-etc/ –

+0

我有一個ReferenceTransaction ID,並且只想用它來授權現在並在稍後的點捕獲。問題是我們正在使用一箇舊的PayPal程序集,它沒有任何與引用事務相關的方法。另外,PayPal示例中指定的SetExpressCheckout需要引用事務ID - 但是,我們擁有的不包含此參數。 – Sriram

回答

0

GetExpressCheckoutDetails API操作獲取有關Express Checkout事務的信息。您必須使用方法GetExpressCheckoutDetails和參數PAYMENTREQUEST_n_TRANSACTIONID:

最多10個並行付款請求的交易ID。您最多可以指定10個付款,其中n是0到9之間的數字,包括0和9。

字符長度和限制:17個字符,但該類型的事務除外訂單的字符長度爲19. 該字段自版本64.0起可用。

+0

非常感謝您的回覆!但是,我不認爲這是可能的。我想使用參考賬單協議ID來執行此授權。另外,我不希望任何用戶與Paypal網站進行交互。事實上,這個授權是在用戶下訂單後異步的。 ExpressCheckout要求用戶對交易進行認證,這意味着我們可能必須將他們重定向到Paypal網站(這是不期望的)。另外,我們使用的是舊的Paypal Dll(參考文獻有Paypal_base.dll V0.0)。這沒有參數PAYMENTREQUEST_n_TRANSACTIONID。 – Sriram

+0

基本上,我需要創建一個新的事務並將事務ID傳遞給doAuthorization()方法。但是,我不知道如何創建這個交易。如果我嘗試使用BillUser()以創建一個事務,它會因內部錯誤而被拒絕。 – Sriram

+0

您必須先設置方法SetExpressCheckout!看到這個例子: http://stackoverflow.com/questions/32565213/paypal-express-checkout-api-is-there-a-way-to-process-both-recurring-payment-i – Pavel

0

我試圖完成類似的事情,據我可以告訴你,必須使用DoDirectPayment並設置paymentaction到授權一旦你的ID這將送你回去的事務id,你可以把它送到DoAuthorization

我遇到的問題是如何交易ID仍然回來無效希望這個幫助如果你找到解決方案,請分享它謝謝