有没有办法跳过使用PayPal REST Api的两步确认过程?
我已经成功地使用PayPalREST api实现了标准流程,它将用户带到PayPal网站,在那里他们输入他们的凭据,然后得到带有“继续”选项的订单摘要。“你快完成了。您将在xxxx商店确认付款”。
有没有一种方法可以跳过这一步?这样就不会让用户返回我的网站,在那里他们必须再次查看订单并选择“付款”,而是在PayPal上显示“立即付款”按钮,该按钮将执行付款?
我已经搜索过了,经典的API似乎通过添加url参数useraction commit来处理这个问题。如果我能找到RESTAPI的等价物就好了。
这个用例确实存在于事物的REST端,但是目前只能通过移动SDK使用。更多细节请查看https://developer.paypal.com/docs/integration/mobile/make-future-payment/
当用户在web上使用PayPal支付时,在REST生态系统中仍然需要重定向到PayPal。
我也有同样的问题,我得到了PayPal支持的回答。
TL;DR:只需附加
他们告诉我REST API重定向URL是一个常规的快速结账重定向URL,因此您可以使用相同的参数。
如果您进行付款API调用,例如:
curl -v https://api.sandbox.paypal.com/v1/payments/payment
-H "Content-Type:application/json"
-H "Authorization:Bearer ACCESS_TOKEN_HERE"
-d '{
"transactions": [{
"amount": {
"currency":"USD",
"total":"12"
},
"description":"creating a payment"
}],
"payer": {
"payment_method":"paypal"
},
"intent":"sale",
"redirect_urls": {
"cancel_url":"https://devtools-paypal.com/guide/pay_paypal/curl?cancel=true",
"return_url":"https://devtools-paypal.com/guide/pay_paypal/curl?success=true"
}
}'
您将得到以下响应:
{
"id":"PAY-XYZ",
"create_time":"2015-02-26T15:14:27Z",
"update_time":"2015-02-26T15:14:28Z",
"state":"created",
"intent":"sale",
"payer":{
"payment_method":"paypal",
"payer_info":{
"shipping_address":{
}
}
},
"transactions":[
{
"amount":{
"total":"12.00",
"currency":"USD",
"details":{
"subtotal":"12.00"
}
},
"description":"creating a payment",
"related_resources":[
]
}
],
"links":[
{
"href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-XYZ",
"rel":"self",
"method":"GET"
},
{
"href":"https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-FOOBAR",
"rel":"approval_url",
"method":"REDIRECT"
},
{
"href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-XYZ/execute",
"rel":"execute",
"method":"POST"
}
]
}
在此响应中,您将获得批准url
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-FOOBAR
您只需使用参数
所以你把你的用户重定向到
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-FOOBAR&useraction=commit
示例来自PayPal开发工具。
问题内容: 我想从数据库中获取一个对象(如果已存在)(基于提供的参数),或者如果不存在则创建它。 Django的(或)做到了。SQLAlchemy中是否有等效的快捷方式? 我目前正在像这样明确地写出来: 问题答案: 基本上就是这样做的方法,没有快捷方式可供使用的AFAIK。 你可以将其概括为:
我创建贝宝Restapi以下步骤1.创建登录ID由developer.paypal.com2.点击我的应用程序3.点击按钮"创建应用程序"创建测试应用程序4.通过单击testapp,我得到了两个api凭据(i)测试凭据(ii)实时凭据(通过单击显示) 我的代码中存在上述api(客户端ID和密码)的问题,代码给出的错误号为401或某个时间为400 我已检查“帐户资格” PayPal付款和登录与Pay
问题内容: 不幸的是,HTML中没有CDATA。 遗憾的是,因为它非常适合添加包含XML的注释,因此您不必转义<和>,例如: 但是,可以识别CDATA部分,然后将其转换为HTML。例如: 或者它可以使用比CDATA更简单的语法。因为是可扩展的,所以可能有人添加了此功能。也许已经将它埋在里面的某处…有人知道吗? 问题答案: 您可以使用JavaDoc的标签:
问题内容: 在Swift中,转义的闭包参数用注释。在Objective- C中是否有任何等效项,以便将生成的Swift接口标记为? 问题答案: 是的,但是从您在问题中提出的建议来看是落后的。规则是,除非明确标记,否则Objective-C不可为空的块会 自动 转换为Swift作为函数。 __
我是一个JaxB noob,但我学到了很多关于如何配置Jackson的知识。我正在为一些域对象类添加XML序列化/反序列化支持。我有一个类类型,它根据必须指定的上下文进行不同的序列化/反序列化。 通过编写HandlerInstantiator的自定义实现,我在Jackson中实现了这一点。自定义实现将上下文作为构造函数参数。当这些上下文敏感对象需要序列化器或反序列化器时,提供它的方法会使用构造处理
问题内容: 是否可以使用并发时保持正确性来重写下面的代码? 即从java.util.concurrent是否有可以代替的东西?请注意,仅替换为 显然行不通 问题答案: Guava的CacheBuilder类使您可以轻松地做到这一点。 请注意,在您使用实例的情况下,这会将键相等语义更改为,而不是将其替换为无关紧要,但这是一个潜在的陷阱。