Tích hợp thanh toán PinMe UniwebPay
Hướng dẫn viết code thanh toán trong PinMe Worker (Cloudflare Worker TypeScript) gọi UniwebPay trực tiếp qua @uniwebpay/sdk.
Web · APINâng cao★ 3,743⑂ 276Điểm AI 8/10Cập nhật lần cuối: 12 thg 9, 2026
Làm được gì
- Cung cấp đầy đủ quy tắc để thêm thanh toán UniwebPay vào Cloudflare Worker của dự án PinMe.
- Mô tả hợp đồng biến môi trường do PinMe tự inject khi deploy:
UNIWEB_SECRET,UNIWEB_WEBHOOK_SECRET,WORKER_URL… và cách xử lý khi thiếu. - Bảng chọn hướng tích hợp: payment link, product/price, checkout session hay subscription.
- Tham chiếu nhanh toàn bộ API của SDK (products, prices, checkout, payments, refunds, customers, subscriptions, links, wallet) với tham số camelCase.
- Quy tắc webhook: xác thực chữ ký bằng
verifyWebhook, ý nghĩa mã 400/500, idempotency theoevent.id, bỏ qua auth của dự án cho route webhook, lịch retry. - Cảnh báo ràng buộc tiền tệ/phương thức: card hỗ trợ 10 loại tiền, wechat/alipay/paynow chỉ SGD, số tiền luôn là số nguyên đơn vị nhỏ nhất.
- Kèm schema D1 cho bảng orders/payment_events và một bản Worker mẫu hoàn chỉnh.
Phù hợp với ai
- Lập trình viên triển khai Cloudflare Worker qua PinMe và cần thu tiền.
- Người dùng UniwebPay (@uniwebpay/sdk) cần làm thanh toán một lần, gói đăng ký, hoàn tiền.
- Ai muốn Claude Code sinh code thanh toán tuân thủ quy tắc bảo mật và idempotency.
Ví dụ sử dụng
- "Tạo link nhận tiền cố định" → dùng
links.createsinh link/p/dùng lại được, kèmwebhookUrldựng từenv.WORKER_URL. - "Thêm API checkout cho giỏ hàng" → tạo product/price một lần, lưu
priceId, rồicheckout.createtrả về URL hết hạn sau 24 giờ. - "Cập nhật đơn thành đã thanh toán" → route webhook đọc raw body đúng một lần, xác thực chữ ký, chống trùng theo
event.id, kiểm tra số tiền/tiền tệ trước khi ghi D1.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/glitternetwork/pinme/HEAD/skills/pinme-uniwebpay/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục skills/pinme-uniwebpay từ repo GitHub glitternetwork/pinme vào ~/.claude/skills/pinme-uniwebpay/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/glitternetwork/pinme.git && mkdir -p ~/.claude/skills && cp -r pinme/skills/pinme-uniwebpay ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal và vào thư mục làm việc.
- Clone repo:
git clone https://github.com/glitternetwork/pinme.git - Tạo thư mục skills:
mkdir -p ~/.claude/skills - Copy skill:
cp -r pinme/skills/pinme-uniwebpay ~/.claude/skills/ - Kiểm tra tồn tại file
~/.claude/skills/pinme-uniwebpay/SKILL.md. - Mở lại Claude Code, trong dự án PinMe Worker hãy yêu cầu ví dụ: "tạo route payment link UniwebPay".
- Để chạy thật, cần bật UniwebPay trong PinMe và deploy lại dự án để nhận các binding
UNIWEB_*.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT