我正在使用 .NET 的 paypal API,并通过以下方法创建付款:POST /v1/ payments/ payment。
我的付款创建请求:
Payment = {
intent: 'sale',
payer = {
payment_method = 'paypal'
},
transactions = [
transaction= = {
amount = {
currency = 'GBP',
total = '10.00'
},
item_list = {
items = [
item = {
quantity = '1',
name = 'name',
price = '10.00',
currency = 'GBP',
sku = 'description'
}
],
shipping_address = {
recipient_name = 'name',
line1 = 'address',
city = 'city',
country_code = 'GB',
postal_code = 'G69 7LS'
}
}
}
],
redirect_urls = {
return_url = 'http://localhost/',
cancel_url = 'http://localhost/'
}
}
如您所见,我没有创建“销售”类型的相关交易。
创建并执行付款后,在某些情况下我们需要退还客户的钱,但要退款,我们需要一个 saleId。我尝试通过付款创建来生成 saleId,但仍然失败,因为 sale 对象似乎被 API 忽略了。
您拨打此电话后,PayPal 将返回一个链接以引导客户访问 PayPal。之后,它返回到您指定的返回 URL。然后,您执行执行付款调用:
https://api.sandbox.paypal.com/v1/payments/payment/<Payment-Id>/execute/
该回复中将包含您正在寻找的信息。
Response=>transactions=>lated_resources=>sale=>id 是带有 id 的变量。
另外,Response=>transactions=>lated_resources=>links 会有交易退款的链接。