Gau*_*hra 4 paypal paypal-sandbox
我正在扩展一个当前使用 stripe 作为支付处理器的应用程序。该架构的实现方式是,为了满足合规性,我不会在应用程序数据库中存储任何交易和客户信息。因此,所有数据都作为交易元数据存储在 Stripe 中。
现在我需要扩展应用程序以添加 Paypal 支付网关,但在浏览文档后,我找不到 PayPal 交易 API 中可用的元数据选项,就像 Stripe 中的元数据选项一样。
我已经按照 v1 https://developer.paypal.com/docs/business/checkout/server-side-api-calls/create-order/中的建议尝试了 PayPal 的带有元数据的创建订单 API
createOrder: function(data, actions) {
return actions.order.create({
metadata:{
"cid":1233,
"dgn":"AH-GHGJTTHHHJ",
"ct":"X-HGD898989","tfn":"xyz params",
"type":"2",
"lo":"lorem ipsum is a dummy text and hope it works"
},
purchase_units: [
{
"description":'xyz P30 Pro mobile',
"amount":{"currency_code":"USD","value":199}
}]
});
},
Run Code Online (Sandbox Code Playgroud)
但是在通过 TX_ID 检索事务时,我没有取回元数据对象。
因此,任何过去面临过这一挑战并能提出解决方法来通过 PayPal 实现这一目标的人都会受到高度赞赏。
除了交易的唯一字段(以前从未用于完成付款)之外,PayPal 中唯一的自定义元数据字段是,记录如下:https ://developer.paypal.com/docs/api/orders/v2/#orders-创建请求主体invoice_idcustom_id
如果您需要其他字段,请根据您自己的订单/发票 ID 或生成的 PayPal 交易 ID 将其存储在本地,并在以后根据需要查找。custom_id如果数据足够小(127 个字符),具有合规性问题的最敏感数据可能会作为序列化 JSON 字符串存储
购买商品信息可以放入“items”数组中,这要求金额有一个“breakdown”对象。请参阅文档中的示例,
createOrder: function(data, actions) {
return actions.order.create({
"purchase_units": [{
"amount": {
"currency_code": "USD",
"value": "100",
"breakdown": {
"item_total": { /* Required when including the `items` array */
"currency_code": "USD",
"value": "100"
}
}
},
"items": [
{
"name": "First Product Name", /* Shows within upper-right dropdown during payment approval */
"description": "Optional descriptive text..", /* Item details will also be in the completed paypal.com transaction view */
"unit_amount": {
"currency_code": "USD",
"value": "50"
},
"quantity": "2"
},
]
}]
});
},
Run Code Online (Sandbox Code Playgroud)