簡體   English   中英

添加新的支付配置文件時 Authorize.net 錯誤 - 代碼:E00114,無效的 OTS 令牌

[英]Authorize.net Error when adding new paymentProfile - code: E00114, Invalid OTS Token

我們正在嘗試為現有的 customerProfile 添加一個新的 customerPaymentProfile。 我們在提供https://github.com/AuthorizeNet/sample-code-node/blob/master/CustomerProfiles/create-customer-payment-profile.js的 github 示例上對我們的代碼進行模式化

唯一的區別是,我們不會將 CC 詳細信息傳遞給我們的服務器。 相反,我們從前端傳遞 opaqueData。 在初始customerProfile創建(使用單個付款配置文件)時,它可以很好地工作。 但是如果我們嘗試添加一個新的支付配置文件(使用新的 opaqueData),我們會得到錯誤代碼: E00114,無效的 OTS 令牌。

關於錯誤代碼的官方文檔並沒有說太多

似乎有幾種不同的情況,它會拋出此錯誤代碼

使用 Accept.js

我們的案例(node.js SDK)

其他

我們還嘗試將事務延遲至少 7 秒,然后再使用 opaqueData 可能允許他們的系統按照此處的建議進行同步以接收相同的錯誤消息。

有沒有人遇到過這樣的事情? 任何形式的幫助將不勝感激。

我們做錯了,通過反復試驗(通過 API)來確定客戶是否存在。

因此,我們嘗試創建一個帶有customerPaymentProfile 的 customerProfile,如果 customerProfile 已經存在(如果它是重復的電子郵件),這將引發錯誤。 這里有什么好處,就是customerProfileId將包含在錯誤有效負載中。

現在,我們雖然利用誤差的有效載荷customerProfileId,來為客戶創造新的付款資料,減少我們的系統上的一個DB電話給我們一些優勢。

我們策略的問題在於,即使請求失敗,當我們使用opaqueData創建 customerProfile(w/payment profile) 時,它顯然也會過期

所以解決方案是在我們的系統中保存客戶信息,並檢查它是否是回頭客。 如果是,則從數據庫中獲取customerProfileId ,並在 authorize.net 上創建新的 customerPaymentProfile

也可以先創建 customerProfile,而無需 customerPaymentProfile。 如果此事務失敗,那么至少您還沒有使用opaqueData並且您獲得了customerProfileId,無需對您的數據庫進行任何查詢。 因此,當您嘗試創建新的customerPaymentProfile 時,您不會收到錯誤代碼E00114,因為尚未使用 opaqueData。

經驗教訓對我們來說是艱難的,但希望它可以幫助某人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM