alipay / alipay-sdk-nodejs-all

支付宝开放平台 Alipay SDK for Node.js
https://docs.open.alipay.com/54/103419/
Other
410 stars 65 forks source link

有支持denojs的计划吗/Is there a plan to support denojs? #143

Open superAlibi opened 5 months ago

superAlibi commented 5 months ago

目前打算在denojs上做demo,看了下加密方式在denojs上不能原生支持.所以想问问未来有支持denojs的计划吗

fengmk2 commented 5 months ago

我们只支持 nodejs 的官方 api,类似 bun 这种兼容 nodejs api 的运行时应该是可以运行的。

superAlibi commented 5 months ago

实际上并不能,在使用sdk发送curl请求时,会将密钥对内容进行签名,但实际上密钥是base64的,在签名时使用node:crypto模块对密钥显式解码时,爆出私钥的base64无法解码 以下是逻辑代码和测试文件内容 `deno.json { ... "imports": { "alipaysdk": "npm:alipay-sdk@latest" } ... }

javascript // projectroot/tools/sdk/alipay.ts import { AlipaySdk } from "alipaysdk";

const urlObj = new URL(import.meta.url); const query = Object.fromEntries(urlObj.searchParams.entries());

/**

javascript // projectroot/test/alipay.test.ts import { getAlipaySDKInstane } from "../tools/sdk/alipay.ts?test";

Deno.test("test alipay sdk", async (t) => { const alipay = getAlipaySDKInstane(); await t.step("test query", async (t) => { const result = await alipay.curl("POST", "alipay.trade.page.pay", { body: { bizContent: { outTradeNo: "123456", productCode: "FAST_INSTANT_TRADE_PAY", totalAmount: "0.01", }, }, }); console.log(result); }); });

`

fengmk2 commented 5 months ago

deno 不支持 nodejs api,是不支持的。