skopon-shop
v0.1.0
Published
Skopon Bill storefront React components (products, checkout, payment)
Downloads
167
Readme
skopon-shop
完全解耦的 Skopon Bill 消费端 React 组件库:商品列表 / 详情 / 确认订单 / 支付展示。不依赖管理端 front/,不签发 JWT。
安装
npm install skopon-shopimport 'skopon-shop/style.css'
import {
SkoponBillProvider,
ProductList,
ProductDetail,
OrderConfirm,
} from 'skopon-shop'鉴权
由宿主注入客户端 JWT(POST /api/client-jwt/issue 在服务端签发)。SDK 浏览器端不持有 API_KEY。
白名单接口:
GET /api/store/products、GET /api/store/products/{id}GET /api/payment-methods(含currencies、interactionType)POST /api/orders
嵌入示例
function Storefront({ token }: { token: string }) {
const [view, setView] = useState<'list' | 'detail' | 'confirm'>('list')
const [productId, setProductId] = useState('')
return (
<SkoponBillProvider
apiBaseUrl="https://bill.example.com"
token={token}
currency="CNY"
onCurrencyChange={(c) => console.log('currency', c)}
onOrderCreated={(o) => console.log('order', o.uniqueId)}
onError={(e) => console.error(e)}
>
{view === 'list' && (
<ProductList
onSelectProduct={(p) => {
setProductId(p.uniqueId)
setView('detail')
}}
/>
)}
{view === 'detail' && (
<ProductDetail
productUniqueId={productId}
onCheckout={() => setView('confirm')}
/>
)}
{view === 'confirm' && <OrderConfirm productUniqueId={productId} />}
</SkoponBillProvider>
)
}路由由宿主负责;组件不绑定 react-router。
确认订单货币规则
GET /api/payment-methods→ 网关币种G+ 支付方式。- 无 grant 或
G为空 →「请联系管理员」。 - 用户币种
C且C ∈ G ∩ P→ 用C;否则按G顺序取第一个属于商品价格集合P的币种;交集为空 →「请联系管理员」。 - 选 wayCode → 用该项的
interactionType→ 下单 →PaymentView:redirect跳转 /qrcode二维码。
开发
npm run lint # tsc
npm run build # 声明文件 + Vite library (ESM/CJS) + CSS