首页 文章

与Paypal的PHP REST SDK的付款协议

提问于
浏览
1

我试图围绕Paypals订阅的流程 .

我们的流程是:

1.)创建开票计划
2.)激活开票计划
3.)创建账单协议(使用激活的计划,将客户发送到paypal网址)
4.)客户批准,返回我们的URL,使用提供的令牌执行

我遇到的问题是我似乎无法将步骤4中返回的任何id引用到前3个步骤中提供的任何内容 .

我一定是错过了什么,但我完全被遗忘了 . 在前面的步骤中,我找不到任何方式将执行的协议与任何内容联系起来 .

3 回答

  • 0

    正如PayPal_Orcun所提到的,问题仍然悬而未决,并且正在贝宝内部得到解决,但与此同时,你可以在这里做些什么 .

    • 在步骤3中,创建协议后,您将获得如下所示的批准链接:

    https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-8DL20958WD398123E

    • 在此处,复制令牌,并将其存储在数据库中 . 把它想象成一个独特的Id .

    • 执行付款 . 当它回来时,paypal将重定向回一个这样的网址:

    http://localhost/paypal/PayPal-PHP-SDK/sample/billing/ExecuteAgreement.php?success=true&token=EC-8DL20958WD398123E

    如您所见,您可以在此处执行 $_GET['token'] 检索令牌,并与创建的令牌匹配 . 然后,您可以在执行成功时使用 ID 返回,并将令牌字段替换为新的ID字段 .

    我同意,这不是你所期望的,但它绝对允许你在 createexecute 之后连接协议 .

    希望这有帮助 .

  • 0

    以下是REST API计费方案和结算协议的工作原理(包括卷曲调用样本):

    首先,请确保您的REST应用程序切换为订阅(您可以在https://developer.paypal.com/webapps/developer/applications/myapps上检查您的REST应用程序设置)

    1-)创建开票计划

    卷曲-k -v -H "Content-Type:application/json" -H "Authorization: Bearer ACCESS_TOKEN" -d '{ 893298 : 893299 , 893300 : 893301 , 893302 : 893303 , 893304 :[{ 893305 : 893306 , 893307 : 893308 , 893309 : 893310 , 893311 : 893312 , 893313 :{ 893314 : 893315 , 893316 : 893317 }, 893318 : 893319 , 893320 :[{ 893321 : 893322 , 893323 :{ 893324 : 893325 , 893326 : 893327 }},{ 893328 : 893329 , 893330 :{ 893331 : 893332 , 893333 : 893334 }}]}], 893335 :{ 893336 :{ 893337 : 893338 , 893339 : 893340 }, 893341 : 893342 , 893343 : 893344 , 893345 : 893346 , 893347 : 893348 , 893349 : 893350 }}' https://api.sandbox.paypal.com/v1/payments/billing-plans

    PayPal将返回以“P-”开头的结算方案ID

    2-)激活开票计划

    卷曲-k -v -H "Content-Type:application/json" -H "Authorization: Bearer ACCESS_TOKEN" -d '[{ 893355 : 893356 , 893357 :, 893360 : 893361 }]' https://api.sandbox.paypal.com/v1/payments/billing-plans/

    3-)创建账单协议

    卷曲-k -v -H "Content-Type:application/json" -H "Authorization: Bearer ACCESS_TOKEN" -d '{ 893366 : 893367 , 893368 : 893369 , 893370 : 893371 , 893372 :, 893375 :, 893378 :{ 893379 : 893380 , 893381 : 893382 , 893383 : 893384 , 893385 : 893386 , 893387 : 893388 }}' https://api.sandbox.paypal.com/v1/payments/billing-agreements

    PayPal将返回带有EC令牌的Express Checkout重定向URL . 例如 . https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxxxxxxxxxxxxxxx

    您需要通过该URL将您的客户重定向到PayPal . 一旦授权了结算协议,客户就会返回到您的站点(步骤1中的return_url) .

    4-)执行账单协议

    卷曲-k -v -H "Content-Type:application/json" -H "Authorization: Bearer ACCESS_TOKEN" -d '{}' https://api.sandbox.paypal.com/v1/payments/billing-agreements/EC-TOKEN_HERE/agreement-execute

  • 2

    我用于同一问题的解决方案是在结算协议上设置 override_merchant_preferences ,其中 return_url 在查询中包含用户ID,如 www.domain.com/api/handler.php?uid=42&action=return .

相关问题