รายงานการทำธุรกรรมและการชำระเงิน
รายงานการทำธุรกรรมให้ข้อมูลเชิงลึกโดยละเอียดเกี่ยวกับกิจกรรมการชำระเงินทั้งหมดในบัญชี 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 หลักสุดท้าย (เลือกได้ว่าจะระบุแบรนด์บัตรหรือไม่)
การค้นหาขั้นสูงผ่าน API
# Python - การค้นหาการทำธุรกรรมขั้นสูง
import omise
omise.api_secret = 'skey_test_xxxxx'
class TransactionSearch:
def search(self, criteria):
# ค้นหาด้วยพารามิเตอร์พื้นฐาน
params = {'limit': 100}
if criteria.get('from'):
params['from_date'] = criteria['from']
if criteria.get('to'):
params['to_date'] = criteria['to']
charges = omise.Charge.list(**params)
results = charges.data
# ใช้ตัวกรองเพิ่มเติม
if criteria.get('min_amount'):
results = [c for c in results if c.amount >= criteria['min_amount'] * 100]
if criteria.get('card_last4'):
results = [c for c in results if c.card and c.card.last_digits == criteria['card_last4']]
return results
# ตัวอย่างการใช้งาน
searcher = TransactionSearch()
results = searcher.search({
'from': '2024-01-01T00:00:00Z',
'to': '2024-01-31T23:59:59Z',
'card_last4': '4242',
'min_amount': 100
})
การกำหนดตารางเวลารายงาน
ตั้งค่ารายงานตามกำหนดเวลา
-
ไปที่ รายงาน > รายงานตามกำหนดเวลา
-
คลิก "สร้างตารางเวลา"
-
กำหนดค่ารายงาน:
- ประเภทรายงาน (การชำระเงิน ค่าใช้จ่าย การคืนเงิน)
- ความถี่ (วันละ สัปดาห์ละ เดือนละ)
- ช่วงวันที่ (24 ชั่วโมงที่ผ่านมา 7 วันที่ผ่านมา เป็นต้น)
- ตัวกรองและเงื่อนไข
- รูปแบบการส่งออก (CSV, PDF, Excel)
-
ตั้งค่าผู้รับ:
- เพิ่มที่อยู่อีเมล
- กำหนดค่าเวลาการส่ง
- ตั้งค่าเขตเวลา
-
บันทึกตารางเวลา
การจัดส่งรายงานโดยอัตโนมัติ
// Node.js - การตั้งตารางเวลารายงานเฉพาะ
const omise = require('omise')({ secretKey: 'skey_test_xxxxx' });
const cron = require('node-cron');
const nodemailer = require('nodemailer');
// การกำหนดค่าอีเมล
const transporter = nodemailer.createTransport({
host: 'smtp.example.com',
port: 587,
auth: { user: 'reports@example.com', pass: 'password' }
});
async function generateAndEmailReport() {
try {
const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000);
const today = new Date();
const charges = await omise.charges.list({
from: yesterday.toISOString(),
to: today.toISOString(),
paid: true,
limit: 100
});
const reportData = charges.data.map(charge => ({
'Transaction ID': charge.id,
'Amount': charge.amount / 100,
'Currency': charge.currency.toUpperCase(),
'Card Brand': charge.card?.brand || 'N/A',
'Status': charge.status,
'Created': new Date(charge.created * 1000).toISOString()
}));
// แปลงเป็น CSV
const json2csv = require('json2csv');
const csv = json2csv.parse(reportData);
// บันทึกลงไฟล์และส่ง
await transporter.sendMail({
from: '"Omise Reports" <reports@example.com>',
to: 'accounting@example.com',
subject: `Daily Payment Report - ${yesterday.toISOString().split('T')[0]}`,
text: `Total Transactions: ${charges.total}`,
attachments: [{ filename: 'report.csv', content: csv }]
});
console.log('Report sent successfully');
} catch (error) {
console.error('Error generating report:', error);
}
}
// ทำงา นทุกวันเวลา 8:00 น.
cron.schedule('0 8 * * *', generateAndEmailReport);
ตัวเลือกการส่งออก
รูปแบบการส่งออก
- CSV: ดีที่สุดสำหรับ Excel, Google Sheets, การวิเคราะห์ข้อมูล
- Excel (XLSX): สำหรับคุณสมบัติ Excel ขั้นสูง การจัดรูปแบบ
- PDF: สำหรับการพิมพ์ การแชร์ การ เก็บถาวร
ส่งออกจากแดชบอร์ด
- ไปที่รายงานที่ต้องการ
- ใช้ตัวกรองและช่วงวันที่
- คลิกปุ่ม ส่งออก
- เลือกรูปแบบ (CSV, Excel, PDF)
- ดาวน์โหลดเริ่มต้นโดยอัตโนมัติ
คำถามที่พบบ่อย
รายงานการทำธุรกรรมถูกเก็บไว้นานแค่ไหน?
Omise จะเก็บข้อมูลการทำธุรกรรมไว้ได้นาน 7 ปี คุณสามารถเข้าถึงและส่งออกข้อมูล จากจุดใดก็ได้ภายในระยะเวลานี้
ฉันสามารถสร้างรายงานสำหรับวิธีการชำระเงินเฉพาะได้หรือไม่?
ใช่ คุณสามารถกรองรายงานตามวิธีการชำระเงิน รวมถึงบัตรเครดิต (ตามแบรนด์) ธนาคารอินเทอร์เน็ต ธนาคารมือถือ ที่เก็บอิเล็กทรอนิกส์ และการชำระเงิน QR
ความแตกต่างระหว่างวันที่การทำธุรกรรมและวันที่การตัดบัญชีคืออะไร?
วันที่การทำธุรกรรมคือเวลาที่จัดการการชำระเงิน วันที่การตัดบัญชีคือเมื่อโอนเงินไปยังบัญชีธนาคารของคุณ (โดยทั่วไปจาก 3-7 วันธุรกิจขึ้นอยู่กับข้อตกลงของคุณ)
ฉันสามารถปรับแต่งรายงานได้หรือไม่?
ไดซเบิลดอร์ดมีเทมเพลตมาตรฐาน แต่คุณสามารถสร้างรายงานเฉพาะโดยใช้ API ส่งออกข้อมูลโดยการเขียนโปรแกรมและจัดรูปแบบตามความต้องการเฉพาะของคุณ
ทรัพยากรที่เกี่ยวข้อง
- ภาพรวมแดชบอร์ด - นำทางแดชบอร์ด
- รายงานยอดคงเหลือ - รายงานการตัดบัญชี
- อ้างอิง API ค่าใช้จ่าย - API ค่าใช้จ่าย
- อ้างอิง API การคืนเงิน - API การคืนเงิน