我想在订阅支付网关Braintree的功能方面进行测试 - 对于使用Django(python)的应用程序。
您的代码我只有一个py文件。 (没有前端)。当我想创建订阅时,我收到一个错误:
<ErrorResult 'Payment method token is invalid.' at 7f101d301390>
如何获得代币付款方式?
这是我的所有代码:
import braintree
braintree.Configuration.configure(braintree.Environment.Sandbox,
merchant_id="myMechrantId",
public_key="myPublicKey",
private_key="myPrivateKey")
client_token = braintree.ClientToken.generate()
client = braintree.Customer.create({
"first_name": 'Mike',
"last_name": "Smith",
"company": "Braintree",
"email": "jen@example.com",
"phone": "312.555.1234",
"fax": "614.555.5678",
"website": "www.example.com"
})
result = braintree.Subscription.create({
"payment_method_token": "the_token",
"plan_id": "Here is my plan ID"
})
答案 0 :(得分:5)
我在Braintree工作。如果您有更多问题,请get in touch with our support team。
一般来说,像Braintree这样的服务的主要好处之一就是你永远不必处理信用卡号码,所以最好不要使用following the Braintree recurring billing guide,这样可以更好地匹配与Braintree的真正集成。
那就是说,如果你想在没有前端的情况下测试它,你可以像这样测试它:
result = braintree.Customer.create({
"credit_card": {
"number": "4111111111111111",
"expiration_date": "12/16"
}
})
result = braintree.Subscription.create({
"payment_method_token": result.customer.credit_cards[0].token,
"plan_id": "my_plan_id"
})
答案 1 :(得分:0)
很晚了,但我最近被这个问题困住了,这是帮助我的解决方案
customer_create_result = gateway.customer.create({
"first_name": user.first_name,
"last_name": user.middle_name + '' + user.last_name,
"payment_method_nonce": payment_method_nonce
})
subscription_create_result = gateway.subscription.create({
"payment_method_token":
customer_create_result.customer.payment_methods[0].token,
"plan_id": braintree_plan_id
})
其中 payment_method_nonce 可以在点击付款按钮时从 payload.nonce 获得,braintree_plan_id 是您在 Braintree 控件中创建的计划的 ID面板
这是帮助我的脑树参考 https://developer.paypal.com/braintree/docs/guides/customers#create-with-payment-method