我試圖連接到名為PayU的支付api,他們提供了如何通過curl連接的例子,其中一個是通過rest api連接的例子
。curl -X POST https:/secure.payu.com/pl/standard/user/oauth/authorize 'grant_type=client_credentials& client_id=145227& client_secret=12f071174cb7eb79d4aac5bc2f07563f'
還有一個是通過SDK連接,我也想使用,但這個需要在商店里進行額外的設定,我對第一個設定有困難,所以如果有人能好心地解讀另一個設定就太好了
curl -X POST https:/secure.payu.com/pl/standard/user/oauth/authorize
-H "Cache-Control: no-cache"
-H "Content-Type: application/x-www-form-urlencoded"/span>
-d 'grant_type=trusted_merchant&client_id=[由PayU提供]&client_secret=[由PayU提供]&email=[用戶email]&ext_customer_id=[商戶系統中使用的客戶身份]'
在Curl中,第一種方法可以順利地交付令牌,但是我試圖在代碼中也這樣做,但我無法做到。這是我的代碼:
fetch('https://secure.payu.com/pl/standard/user/oauth/authorize'/span>, {
method: 'POST',
body: JSON.stringify( {
'grant_type'。'client_credentials',
'client_id': '145227',
'client_secret': '12f071174cb7eb79d4aac5bc2f07563f',
})
}).then(res => {
if (!res.ok) {
throw new Error("Fetching payU failed, please try again later!") 。
}
return res;
})
.then(data => {
console.log(data)
return { payUdata: data }.
})
.catch(err => {
console.log(err)。
});
uj5u.com熱心網友回復:
一個基本的Post主體并不是一個序列化的json,資料看起來像查詢引數,就像在curl中一樣
{
method: 'POST'。
headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},
body: "grant_type=client_credentials&client_id=145227&client_secret=12f071174cb7eb79d4aac5bc2f07563f")
}
來自 @BankBuilder 的評論:
function querifyObject(obj){
return new URLSearchParams(Object. entries(obj)).toString()。
}
然后:
{
method: 'POST'。
headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},
body: querifyObject({
'grant_type': 'client_credentials',
'client_id': '145227',
'client_secret': '12f071174cb7eb79d4aac5bc2f07563f',
})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/331029.html
標籤:

