0

我正在使用 PayPal 自适应支付(链式支付)。

如果我设置: 1. CREATE payment 2. 在 SetPaymentOptions -> Requires shipping address selection = true 3. 当我重定向用户 https://www.sandbox.paypal.com/webscr&cmd=_ap-payment&paykey=[PA KEY ] 验证后的用户不会显示任何收货地址提示

为什么?

据此

https://www.x.com/developers/paypal/documentation-tools/api/pay-api-operation

使用 CREATE 时,我应该这样做: CREATE - 使用此选项使用 SetPaymentOptions 设置付款指令,然后稍后使用 ExecutePayment 执行付款。

但是,一旦我尝试运行 ExecutePayment,我就会得到以下信息:

此付款请求必须由发件人授权

那我该如何设置额外的付款方式呢?

4

2 回答 2

1

发件人是否真的授权付款?流程应该是这样的:

  1. actionType使用as CREATE调用 Pay API 操作
  2. 如果paymentExecStatus=CREATED 和ack=SUCCESS,获取payKey(这里,将detailLevel=保留ReturnAllRequestEnvelope您的 Pay API 请求的字段中)
  3. 将用户重定向到 Paypal https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=YOUR_PAYKEY_ABOVE
  4. 如果用户批准付款,您将被重定向到作为 Pay API 请求的一部分发送的 returnURL
  5. 使用 PaymentDetails API 操作验证批准状态
  6. 稍后您可以使用 ExecutePayment API 操作执行付款,从而在步骤 4 中设置。发送payKey您在步骤 2 中获得的相同内容。

您收到错误代码 550001,因为用户批准似乎尚未成功完成。这可能是由于:应用程序没有将用户/发件人重定向到 Paypal 进行授权

或者

用户没有输入正确的登录信息

或者

没有足够的可用资金等。

于 2012-11-07T18:21:30.163 回答
1

只有在您使用延迟链式付款时,才会使用 ExecutePayment 调用。否则,只要买家登录并批准,付款仍然会发生,因此不需要 ExecutePayment。此时调用它会导致您收到错误,即支付密钥已被使用。

于 2012-11-13T00:02:27.437 回答