feat: Refactor Alchemy service to improve payment flow.

- Remove `callbackUrl` from `dataOrigin` object and add it to `dataSign` object in `beginPay` function in `alchemy.controller.ts`
- Improve typing of `dataSign` object in `beginPay` function in `alchemy.controller.ts`
- Add new `createOrder` function and functionality to send post request with token to merchant API in `alchemy.svr.ts`
- Update `ALCHEMY_PAY_CB_URL` in `.env.development` to point to a new domain
This commit is contained in:
zhl 2023-03-27 15:30:27 +08:00
parent c3f81a825f
commit 94cdea34ca
3 changed files with 21 additions and 3 deletions

View File

@ -15,4 +15,4 @@ ALCHEMY_APPID="f83Is2y7L425rxl8"
ALCHEMY_APP_SECRET="4Yn8RkxDXN71Q3p0"
ALCHEMY_API_BASE="https://openapi-test.alchemypay.org"
ALCHEMY_PAGE_BASE="https://ramptest.alchemypay.org"
ALCHEMY_PAY_CB_URL="https://wallet.cebg.games"
ALCHEMY_PAY_CB_URL="https://wallet.cebggame.com"

View File

@ -29,13 +29,13 @@ class AlchemyController extends BaseController {
id,
showTable: 'buy',
merchantOrderNo,
callbackUrl: CALL_BACK_URL,
}
if (chain) dataOrign.network = chain
if (currency) dataOrign.crypto = currency
let dataSign = {
let dataSign: any = {
appId: process.env.ALCHEMY_APPID,
address,
callbackUrl: CALL_BACK_URL,
}
let signStr = generateKVStr({ data: dataSign, sort: true })
let sign = createPageSign(signStr)

View File

@ -72,3 +72,21 @@ export async function refreshToken(email: string) {
let response = await axios(config)
return response.data
}
export async function createOrder(data: any) {
const { appid, timestamp, sign } = createSimpleSign()
const host = process.env.ALCHEMY_API_BASE
const config = {
method: 'post',
url: `${host}/merchant/getToken`,
headers: {
appId: appid,
timestamp: timestamp,
sign: sign,
'Content-Type': 'application/json',
},
data: data,
}
let response = await axios(config)
return response.data
}