pay-sdk-react
Version:
A cross-platform payment SDK for React, supporting Alipay, WeChat Pay, PayPal, Stripe, Payssion, and Airwallex, compatible with H5, PC, and App environments.
44 lines • 1.63 kB
JavaScript
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
import React, { memo, useEffect, useState } from 'react';
import cs from '../utils/classNames';
import makeQrcode from '../utils/qrcode';
import { getPrefixCls } from '../utils/getPrefixCls';
var classPrefix = getPrefixCls('wechat');
var WechatQrCode = function WechatQrCode(_ref) {
var _ref$wechatType = _ref.wechatType,
wechatType = _ref$wechatType === void 0 ? 'qrcode' : _ref$wechatType,
wechatUrl = _ref.wechatUrl,
_ref$tipText = _ref.tipText,
tipText = _ref$tipText === void 0 ? '请使用微信APP扫码支付' : _ref$tipText,
className = _ref.className,
style = _ref.style;
var _useState = useState(''),
_useState2 = _slicedToArray(_useState, 2),
imageUrl = _useState2[0],
setImageUrl = _useState2[1];
useEffect(function () {
if (wechatType === 'qrcode') {
makeQrcode(wechatUrl).then(function (url) {
setImageUrl(url);
});
} else {
setImageUrl(wechatUrl);
}
}, [wechatUrl, wechatType]);
if (!imageUrl) {
return null;
}
return /*#__PURE__*/React.createElement("div", {
className: cs(classPrefix, className),
style: style
}, /*#__PURE__*/React.createElement("div", {
className: "".concat(classPrefix, "__container")
}, /*#__PURE__*/React.createElement("img", {
className: "".concat(classPrefix, "__image"),
src: imageUrl,
alt: '微信支付二维码'
})), tipText && /*#__PURE__*/React.createElement("span", {
className: "".concat(classPrefix, "__tip")
}, tipText));
};
export default /*#__PURE__*/memo(WechatQrCode);