1

我在我的网站上使用贝宝的 REST API 进行数字交易。我已经完成了所有设置和工作,并且能够成功地接受一些用户的付款并为他们提供他们的数字产品。然而,到目前为止,PayPal 将交易视为实物交易。我在 REST 文档中没有找到任何关于将交易标记为数字的内容。我的一个付款请求示例如下所示:

{
  "intent": "sale",
  "redirect_urls": {
    "return_url": "http:\/\/www.googulator.com\/goPro?finishPurchase=true&googleid=123456789",
    "cancel_url": "http:\/\/www.googulator.com\/goPro"
  },
  "payer": {
    "payment_method": "paypal"
  },
  "transactions": [
    {
      "amount": {
        "total": "5.00",
        "currency": "USD"
      },
      "description": "PWYW Lifetime Googulator Pro",
      "item_list": {
        "items": [
          {
            "quantity": "1",
            "name": "Lifetime Googulator Pro",
            "price": "5.00",
            "currency": "USD"
          }
        ]
      }
    }
  ]
}

所以我的问题是,REST API 是否正确支持数字交易,还是我必须求助于使用 PayPal 的经典 API?

4

3 回答 3

1

REST API 不正确或完全支持数字交易。请继续使用 PayPal 的 CLASSIC API。敬请关注。

于 2013-10-22T04:28:43.547 回答
0

我知道为时已晚,但我正在回答以防其他人发现这个问题。

这就是您使用 C# SDK 的方式。

创建个人资料:

string createProfile(APIContext apiContext) {
    var profile = new WebProfile()
    {
        name = Guid.NewGuid().ToString(),                
        input_fields = new InputFields()
        {
            no_shipping = 1
        },
        temporary = true
    };

    return profile.Create(apiContext).id;
}

然后您在付款中设置此函数中返回的 ID:

var profileCreated = createProfile(apiContext);
            Payment paymentParms = new Payment {
                intent = "sale",
                payer = new Payer
                {
                    payment_method = "paypal"
                },
                redirect_urls = new RedirectUrls
                {
                    return_url = WebConfig.WebSite.BaseUrl + "Paypal/Success",
                    cancel_url = WebConfig.WebSite.BaseUrl + "Paypal/Cancel",

                },
                experience_profile_id = profileCreated
            };
于 2017-07-07T19:13:40.933 回答
0

您至少可以通过创建体验配置文件来禁用运输, https://developer.paypal.com/docs/api/payment-experience/

我使用名为 Postman 的应用程序在https://api.sandbox.paypal.com/v1/payment-experience/web-profiles上向 PayPal 发送 POST 请求

使用此 JSON 数据:

{
  "name": "AppName",
  "presentation": {
    "brand_name": "AppName Paypal",
    "locale_code": "US"
  },
  "input_fields": {
    "no_shipping": 1,
    "address_override": 1
  },
  "flow_config": {
    "landing_page_type": "login"
  }
}

请注意,我使用了 no_shipping 1,它禁用了运输。我还通过这个 POST 请求发送了 Authorization Bearer 令牌。

如果请求成功,那么您将获得新创建的体验配置文件的 id。创建快速结帐付款时使用该 ID。

"experience_profile_id":"experience_profile_id",
于 2016-08-14T13:19:38.640 回答