veritrans / SNAP-Woocommerce

MIT License
19 stars 16 forks source link

Cegah Customer Untuk Memilih Payment Method Berulang Jika Terdeteksi Ada Link SNAP Yang Sedang Aktif #74

Open dannys007 opened 1 year ago

dannys007 commented 1 year ago

Dikarenakan Woocommerce memberikan fitur tombol bayar pada order dengan status pending payment di halaman my account maka,

  1. Jika pengguna telah melakukan checkout dan belum melakukan pembayaran langsung dan memilih untuk mengklik tombol "Back to merchant" maka status pembayaran berubah menjadi pending payment.

  2. Karena woocommerce memberikan fitur aksi tombol bayar pada order berstatus pending payment, maka yang terjadi jika customer mengklik tombol tersebut adalah secara otomatis customer akan diminta memilih metode bayar kembali dan nantinya SNAP akan memberikan VA yang baru dan dimana ini menyebabkan time out payment menjadi tereset ulang dan tidak dilanjutkan dari time out pada SNAP yang pertama.

  3. Dari kondisi tersebut, SNAP yang pertama masih aktif dan masih bisa dilakukan pembayaran. Menurut saya ini tidak efisien dan bisa saja ada kemungkinan customer akan melakukan transfer dana ke VA yang pertama (jika timeout masih ada waktu)

Jadi disini menurut saya dibuat logika jika terdeteksi bahwa sudah ada payment link dari SNAP yang aktif maka cukup digunakan itu saja, jadi jika pengguna mengklik tombol bayar pada halaman my account yang terjadi seharusnya woocommerce tidak perlu meminta customer untuk memilih metode pembayaran lagi. Melainkan dapat langsung menuju halaman dimana popup SNAP muncul.

rizdaprasetya commented 1 year ago

Hi @dannys007 terima kasih sudah menjelaskan detail, menginformasikan concern & idenya dengan cukup jelas 👍 . Poin-poin Anda cukup valid, secara umum kami setuju. ✅

Seingat saya dulu hal ini sudah pernah diterapkan, spesifiknya di code ini: https://github.com/veritrans/SNAP-Woocommerce/blob/3736a7ca76d7b836bc2708cbcb5345c123289fe9/abstract/abstract.midtrans-gateway.php#L341-L346

Tapi entah kenapa sepertinya code tersebut tertimpa code/logic lain, sehingga tidak berjalan sesuai ekspektasi. Entah memang valid bug atau memang ada valid use-case untuk tidak menggunakan logic tersebut. Kami akan cek kembali dalam waktu dekat ya!

Terima kasih.

dannys007 commented 1 year ago

Halo @rizdaprasetya,

Terima kasih banyak untuk responnya.

Setelah melakukan test flow lebih lanjut dengan segala kemungkinan yang ada, saya menemukan kendala tambahan dari kasus dalam double atau lebih VA yang aktif dikarenakan logic token exists seperti yang mas rizda infokan diatas tidak bekerja sebagaimana mestinya.

Kendala tambahan tersebut adalah:

  1. Jika ditemukan double atau lebih VA yang aktif dan customer tidak membayarkan pada VA yang paling terkahir maka yang terjadi adalah status order pada awalnya yang sudah "PROSES" menjadi berubah ke status "CANCEL" dikarenakan VA paling terkahir menyatakan pembayaran gagal dilakukan.

Hal ini sudah saya ajukan tiket support ke Midtrans sejak Jumat 30/09/2022 karena mengingat hal ini sangat crucial dan sangat merepotkan merchant jika terjadi hal seperti demikian.

Sebagai tambahan saya sertakan screen record contoh dari flow error terkait. https://www.awesomescreenshot.com/video/11422909?key=a8897f31171946def9b11c29cf95cda5

Terima kasih.

rizdaprasetya commented 1 year ago

Hi mas @dannys007 terima kasih sudah test & laporkan temuan tersebut, kelihatannya valid & saya setuju akan potensi menimbulkan issue seperti info tersebut.

Kami juga akan perlu cek lebih lanjut untuk issue yang di comment Anda terakhir ini (kita sebut sebagai issue 2. Dan issue comment pertama sebagai issue 1).

Possible workaround untuk both issue yang mungkin bisa dengan cepat diterapkan di sisi Anda:

Sambil in parallel kami akan cek & plan fixnya. Note: mungkin akan sedikit memakan waktu, dikarenakan priority tim kami sedang dialihkan untuk beberapa project internal lainnya untuk saat ini. Terima kasih

rizdaprasetya commented 1 year ago

Apakah possible dari WP/WC di-configure supaya tombol bayar di menu daftar pesanan di-matikan sementara?

Berdasarkan sekilas searching, keliatannya tidak ada cara official, selain melakukan modifikasi CSS untuk hide button bayar tersebut.

.woocommerce-MyAccount-content .woocommerce-orders-table__row--status-failed .pay {
    display: none;
}

Jika butuh solusi cepat, bisa coba cara tersebut untuk sementara ini ya, sambil menunggu kami. Thanks.

dannys007 commented 1 year ago

Apakah possible dari WP/WC di-configure supaya tombol bayar di menu daftar pesanan di-matikan sementara?

Berdasarkan sekilas searching, keliatannya tidak ada cara official, selain melakukan modifikasi CSS untuk hide button bayar tersebut.

.woocommerce-MyAccount-content .woocommerce-orders-table__row--status-failed .pay {
    display: none;
}

Jika butuh solusi cepat, bisa coba cara tersebut untuk sementara ini ya, sambil menunggu kami. Thanks.

Terima kasih untuk informasinya mas @rizdaprasetya

Setelah melakukan implementasi hide button "Bayar" di halaman My-Account Order dengan code yang bisa digunakan seperti dibawah

a .woocommerce-button .button .pay {
    display: none !important;
}

Saya harap semoga tim Midtrans dapat mengatasi hal ini sesegera mungkin 🙏

Terima kasih