使用 Braintree DropUI 将 PayPal 帐户链接到保险库的正确方法
Posted
技术标签:
【中文标题】使用 Braintree DropUI 将 PayPal 帐户链接到保险库的正确方法【英文标题】:Correct way to link PayPal Accounts to vault with Braintree DropUI 【发布时间】:2015-09-13 19:09:07 【问题描述】:我有以下控制器:
class PaymentsController < ApplicationController
before_action :authenticate_user!, only: [:new]
def new
gon.client_token = generate_client_token
end
def create
@result = Braintree::Transaction.sale(
amount: 60,
payment_method_nonce: params[:payment_method_nonce])
if @result.success?
puts @result.transaction.payment_instrument_type
flash[:notice] = 'Yes, transaction completed'
else
flash[:alert] = "Something went wrong while processing your transaction. Please try again!"
gon.client_token = generate_client_token
render :new
end
end
private
def generate_client_token
Braintree::ClientToken.generate(customer_id: current_user.braintree_customer_id)
end
end
使用上面的代码,我正在测试将一个 paypal 帐户链接到特定客户的保险库。但是它不会链接。我检查了文档参考,在我看来它不应该是任何额外的调整。
有什么提示吗?
【问题讨论】:
嘿克里斯;我在 Braintree 的 Pay with PayPal 团队工作。您介意发布您用于初始化 Dropin UI 的代码以及您使用的 Braintree.js 版本吗?我可以帮你解决问题。 【参考方案1】:我在 Braintree 上使用 python/javascript 进行 api 开发。您需要为交易创建braintree token
。如果您有customer_id,您可以生成braintree 令牌。您可以按照以下代码创建令牌:
def checkout(request):
api_token = request.session['token']
nonce = request.POST['payment_method_nonce']
customer = Customer.objects.get(user=request.user)
# With this the PaymentMethod will be associated with the Customer
result = braintree.PaymentMethod.create(
"customer_id": customer.customer_id,
"payment_method_nonce": nonce
)
token = result.payment_method.token
print token
# you the BT token to charge the user
result = braintree.Transaction.sale(
"amount": 10,
"payment_method_token": token,
"options": 'submit_for_settlement': True
)
print result.transaction.id
【讨论】:
以上是关于使用 Braintree DropUI 将 PayPal 帐户链接到保险库的正确方法的主要内容,如果未能解决你的问题,请参考以下文章
Braintree - 插入式 UI - Apple Pay - Swift 3
Braintree Apple Sandbox Pay 扫描指纹 iOS 后显示付款未完成错误
Braintree v.Zero Drop In UI 是不是支持 Apple Pay?