В настоящее время я работаю над проектом Angular 7, и мне действительно нужно использовать платежный сервис Cardinity.Я провел некоторое исследование, и я видел мало людей, которые внедрили его в Angular, но мне нужно использовать этот сервис.Я нашел этот «обертку» для node.js для API Cardinity: https://www.npmjs.com/package/cardinity-js Я использовал
npm install --save cardinity-js
И он появился в моих node_modules.
В нем сказано включитьбиблиотека в вашем проекте node.js, например:
const cardinity = require('cardinity-js');
Теперь я использую это в своем компоненте Angular:
import * as cardinity from 'cardinity-js';
Я также поместил библиотеку в раздел сценариев в моем angular.json файл с этой строкой:
"scripts": [
"node_modules/cardinity-js/index.js"
]
Я думал, что все в порядке, но я получаю эту ошибку:
ERROR Error: Uncaught (in promise): TypeError: crypto.randomBytes is not a function
TypeError: crypto.randomBytes is not a function
at push../node_modules/crypto-random-string/index.js.module.exports.len (index.js:9)
at push../node_modules/unique-string/index.js.module.exports (index.js:4)
at CardinityClient.createHeader (cardinityclient.js:29)
at CardinityClient.createRequestObjectForNewPayment (cardinityclient.js:50)
at CardinityClient.createPayment (cardinityclient.js:71)
at FollowersCheckoutPayComponent.<anonymous> (followers-checkout-pay.component.ts:42)
at step (main.js:1079)
at Object.next (main.js:1060)
at main.js:1054
at new ZoneAwarePromise (zone.js:891)
at resolvePromise (zone.js:814)
at resolvePromise (zone.js:771)
at zone.js:873
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:14051)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
at drainMicroTaskQueue (zone.js:595)
Что касается кода, я использую именно то, что в документации сказано, что я долженделаю, единственное отличие состоит в том, что я выполняю обещание, которое вы получаете от функции makePayment (), чтобы получить такие данные:
promises.push(
makePayment().then((data) => {
return data;
})
);
Promise
.all(promises)
.then((data) => {
console.log(data);
});
Папка crypto-js в моих node_modules поставляется с cardinity-jsбиблиотека, что я делаю не так?Спасибо.