รายงานการทำธุรกรรมและการชำระเงิน
รายงานการทำธุรกรรมให้ข้อมูลเชิงลึกโดยละเอียดเกี่ยวกับกิจกรรมการชำระเงินทั้งหมดในบัญชี Omise ของคุณ เข้าถึงข้อมูลแบบองค์ประกอบเกี่ยวกับค่าใช้จ่าย การคืนเงิน ข้อพิพาท และการโอนสำหรับการบัญชี การสมานฉันท์ และการวิเคราะห์ธุรกิจ
ภาพรวม
คุณสมบัติการรายงานการทำธุรกรรมรวมถึง:
- ข้อมูลแบบเรียลไทม์: ดูการทำธุรกรรมในขณะที่เกิดขึ้น
- การกรองแบบองค์ประกอบ: ตัวกรองตามสถานะ จำนวน วันที่ วิธีการชำระเงิน และอื่นๆ
- การค้นหาขั้นสูง: ค้นหาการทำธุรกรรมเฉพาะอย่างรวดเร็ว
- การส่งออกจำนวนมาก: ดาวน์ โหลดข้อมูลการทำธุรกรรมในหลายรูปแบบ
- รายงานตามกำหนดเวลา: อัตโนมัติการสร้างและการจัดส่งรายงาน
- การเข้าถึง API: ดึงข้อมูลการทำธุรกรรมโดยการเขียนโปรแกรม
- เครื่องมือการสมานฉันท์: จับคู่การชำระเงินกับการตัดบัญชีธนาคาร
- การติดตามข้อพิพาท: ตรวจสอบช็อปเบ็คและข้อพิพาท
ประเภทรายงาน
1. รายงานการชำระเงิน
แสดงการชำระเงินที่สำเร็จทั้งหมด:
// Node.js - รับรายงานการชำระเงิน
const omise = require('omise')({
secretKey: 'skey_test_xxxxx'
});
async function getPaymentReport(fromDate, toDate) {
const charges = await omise.charges.list({
from: fromDate,
to: toDate,
paid: true,
limit: 100,
order: 'reverse_chronological'
});
const report = charges.data.map(charge => ({
id: charge.id,
amount: charge.amount / 100,
currency: charge.currency.toUpperCase(),
customer: charge.customer || 'Guest',
card_brand: charge.card?.brand || 'N/A',
card_last4: charge.card?.last_digits || 'N/A',
status: charge.status,
created: new Date(charge.created * 1000).toISOString(),
description: charge.description || ''
}));
return { total: charges.total, payments: report };
}
2. รายงานค่าใช้จ่าย
รวมความพยายามค่าใช้จ่ายทั้งหมด (สำเร็จและล้มเหลว):
# Python - วิเคราะห์การเรียกเก็บเงินที่ล้มเหลว
import omise
omise.api_secret = 'skey_test_xxxxx'
def analyze_failed_charges(from_date, to_date):
charges = omise.Charge.list(
from_date=from_date.isoformat(),
to_date=to_date.isoformat(),
limit=100
)
failed_charges = [c for c in charges.data if not c.paid]
failure_reasons = {}
for charge in failed_charges:
reason = charge.failure_code or 'unknown'
if reason not in failure_reasons:
failure_reasons[reason] = {'count': 0, 'amount': 0}
failure_reasons[reason]['count'] += 1
failure_reasons[reason]['amount'] += charge.amount
return {
'total_failed': len(failed_charges),
'total_attempted': charges.total,
'failure_rate': f"{(len(failed_charges) / charges.total * 100):.2f}%",
'failure_reasons': failure_reasons
}
3. รายงานการคืนเงิน
ติดตามการทำธุรกรรมการคืนเงินทั้งหมด:
# Ruby - สร้างรายงานการคืนเงิน
require 'omise'
Omise.api_key = 'skey_test_xxxxx'
def generate_refund_report(from_date, to_date)
charges = Omise::Charge.list({
from: from_date.iso8601,
to: to_date.iso8601,
limit: 100
})
refund_stats = {
'total_refunds': 0,
'total_amount': 0,
'full_refunds': 0,
'partial_refunds': 0
}
charges.data.each do |charge|
if charge.refunded_amount > 0
refunds = Omise::Refund.list(charge_id: charge.id)
refunds.data.each do |refund|
refund_stats['total_refunds'] += 1
refund_stats['total_amount'] += refund.amount
if refund.amount == charge.amount
refund_stats['full_refunds'] += 1
else
refund_stats['partial_refunds'] += 1
end
end
end
end
refund_stats
end
ตัวเลือกตัวกรอง
ตัวกรองที่พร้อมใช้งาน
- ช่วงวันที่: วันที่เฉพาะ ช่วงสัมพัทธ์ ช่วงกำหนดเอง
- สถานะ: สำเร็จ ล้มเหลว รอดำเนินการ ย้อนกลับ หมดอายุ
- จำนวน: จำนวนต่ำสุด จำนวนสูงสุด จำนวนที่แน่นอน ช่วง
- วิธีการชำระเงิน: บัตรเครดิต/เดบิต ธนาคารอินเทอร์เน็ต ธนาคารมือถือ ที่เก็บอิเล็กทรอนิกส์ QR ตัดการสนับสนุน
- สกุลเงิน: THB SGD JPY USD และอื่นๆ
- ลูกค้า: ID ลูกค้า อีเมล ชื่อ
- ข้อมูลเมตา: ช่องข้อมูลเมตาเฉพาะ ID ตามลำดับ หมายเลขอ้างอิง
การกรองผ่าน API
// Node.js - การกรองขั้นสูง
async function getFilteredTransactions(filters) {
const params = {
limit: 100,
order: 'reverse_chronological'
};
if (filters.from) params.from = filters.from;
if (filters.to) params.to = filters.to;
if (filters.status === 'successful') params.paid = true;
if (filters.status === 'failed') params.paid = false;
const charges = await omise.charges.list(params);
let filteredCharges = charges.data;
if (filters.minAmount) {
filteredCharges = filteredCharges.filter(c => c.amount >= filters.minAmount * 100);
}
if (filters.currency) {
filteredCharges = filteredCharges.filter(c => c.currency === filters.currency.toLowerCase());
}
return { total: filteredCharges.length, data: filteredCharges };
}
ค้นหาการทำธุรกรรม
การค้นหาแดชบอร์ด
ใช้การค้นหาเพื่อค้นหาการทำธุรกรรมเฉพาะ:
- ID การทำธุรกรรม: ID ค่าใช้จ่ายแบบสมบูรณ์หรือบางส่วน
- อีเมลลูกค้า: ที่อยู่อีเมลของลูกค้า
- จำนวน: จำนวนที่แน่นอนและสกุลเงิน
- 4 หลักสุดท้ายของบัตร: 4 หลักสุดท้าย (เลือกได้ว่าจะระบุแบรนด์บัตรหรือไม่)