定制 crocodicstudio/dokularavel 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

crocodicstudio/dokularavel

最新稳定版本:v1.6.6

Composer 安装命令:

composer require crocodicstudio/dokularavel

包简介

This package is DOKU Payment Gateway Library for Laravel

README 文档

README

Total Downloads Latest Unstable Version License Monthly Downloads

Doku Laravel

Ini adalah DOKU Payment Gateway Library yang sudah di compile menjadi Package untuk Laravel. API DOKU ini merupakan API dari DOKU Resmi yang berjenis Merchant Hosted, artinya tetap menggunakan FORM Pembayaran yang digenerate dari DOKU melalui Javascript, dan bukan yang model redirect ke halaman DOKU melainkan Form DOKU ada di server kita dan pembayaran seolah dilakukan di server kita.

Kebutuhan Dasar

  1. SHARED_KEY , didapat dari DOKU, silahkan hubungi DOKU
  2. MALL_ID, didapat dari DOKU, silahkan hubungi DOKU
  3. PERMATA_CODE, didapat dari DOKU, kode ini dibutuhkan jika opsi pembayaran Permata Bank diaktifkan
  4. TABLE_ORDER, table yang berkaitan Order/Invoice dan memilik field minimal no_invoice,customer_name,customer_phone,customer_email,customer_address,total,payment_status,payment_date,payment_channel,payment_approval_code,payment_session_id

1. Instalasi untuk Laravel 5.x

composer require crocodicstudio/dokularavel

2. Tambahkan ke Service Provider (config/app.php)

crocodicstudio\dokularavel\DokuLaravelServiceProvider::class,

3. Publikasi File Konfigurasi

php artisan vendor:publish --provider="crocodicstudio\dokularavel\DokuLaravelServiceProvider"

4. Pengaturan Konfigurasi Dasar

Pada folder config/ akan terdapat file baru bernama dokularavel.php yang isinya adalah :
Yang wajib diisi atau disesuaikan yakni SHARED_KEY,MALL_ID, dan pengaturan TABLE

return [
	/*
	| ---------------------------------------------------------
	| Setting the payment mode is Sandbox Mode or Live Mode
	| ---------------------------------------------------------
	| if set false it means sandbox mode, else it means live mode 
	| ** PLEASE BE CAREFULL ABOUT CHANGE THE LIVE MODE
	|
	*/
	'LIVE_MODE' => FALSE,
	
	/*
	| ---------------------------------------------------------
	| Setting the payment route in PAYMENT_PATH, SHARED_KEY & MALL_ID is code that you get from DOKU Merchant Page.
	| ---------------------------------------------------------
	|
	*/
	'PAYMENT_PATH' => 'dokularavel',
	'SHARED_KEY'   => NULL, 
	'MALL_ID'      => NULL,
	'PERMATA_CODE' => NULL,
	'CURRENCY'     => 360,
	'NOTIFY_SCREET_CODE'=>'123456',

	/* 
	| ---------------------------------------------------------
	| Define your table of order and the fields
	| ---------------------------------------------------------
	| 
	*/
	'TABLE_ORDER'                  => NULL,
	'TABLE_FIELD_NO_ORDER'         => NULL,
	'TABLE_FIELD_AMOUNT'           => NULL,
	'TABLE_FIELD_CUSTOMER_NAME'    => NULL,
	'TABLE_FIELD_CUSTOMER_PHONE'   => NULL,
	'TABLE_FIELD_CUSTOMER_EMAIL'   => NULL,
	'TABLE_FIELD_CUSTOMER_ADDRESS' => NULL,
	'TABLE_FIELD_PAYMENT_DATE'     => NULL,
	'TABLE_FIELD_PAYMENT_STATUS'   => NULL,
	'TABLE_FIELD_PAYMENT_CHANNEL'  => NULL,
	'TABLE_FIELD_PAYMENT_APPROVAL_CODE' => NULL,
	'TABLE_FIELD_PAYMENT_SESSION_ID' => NULL,


	/*
	| ---------------------------------------------------------
	| DOKU PAYMENT AVAILABLE CHANNEL 
	| ---------------------------------------------------------
	| 15 = Credit Card
	| 04 = Doku Wallet
	| 02 = Mandiri Clickpay
	| 05 = Permata Bank / ATM Bersama	
	|
	| This setting is for default payment channel otherwise you can set the payment channel on the fly by url parameter "payment_channel"
	*/	
	'AVAILABLE_PAYMENT_CHANNEL'=> ['15','04','02','05'],
	'DEFAULT_PAYMENT_CHANNEL'=> '15', 			


	/* 
	| ---------------------------------------------------------
	| This setting is for set the product name in doku transaction
	| Basicly "DOKULARAVEL" package only send 1 basket to DOKU, that is global invoice. 
	| ---------------------------------------------------------
	| Alias that you can use : 
	| [invoice_no] to generate your invoice number / trans_id 
	| 
	*/
	'PRODUCT_NAME_FORMAT' => 'Invoice For Order No. [invoice_no]',




	/* 
	| ---------------------------------------------------------
	| Set redirect page DOKU 
	| ---------------------------------------------------------
	| [Default] or SHOW_DOKU_SUCCESS_PAGE set TRUE, SHOW_FINISH_PAGE set TRUE, YOUR_OWN_FINISH_PAGE set NULL
	| - Payment Flow : USER DATA -> PROCESSING -> DOKU SUCCESS PAGE -> FINISH PAGE
	|
	| If SHOW_DOKU_SUCCESS_PAGE set TRUE, SHOW_FINISH_PAGE set FALSE, YOUR_OWN_FINISH_PAGE set NULL
	| - Payment Flow : USER DATA -> PROCESSING -> DOKU SUCCESS PAGE
	| 
	| If SHOW_DOKU_SUCCESS_PAGE set FALSE, SHOW_FINISH_PAGE set TRUE, YOUR_OWN_FINISH_PAGE set NULL
	| - Payment Flow : USER DATA -> PROCESSING -> FINISH PAGE
	| 
	| If SHOW_DOKU_SUCCESS_PAGE set FALSE, SHOW_FINISH_PAGE set TRUE, YOUR_OWN_FINISH_PAGE set not NULL / set your own URL PAGE
	| - Payment Flow : USER DATA -> PROCESSING -> YOUR OWN FINISH PAGE
	| 
	*/
	'SHOW_DOKU_SUCCESS_PAGE' => TRUE, //it means the page that generated from DOKU
	'SHOW_FINISH_PAGE'       => TRUE, //it means the page that generated from "dokularavel" package.
	'YOUR_OWN_FINISH_PAGE'   => NULL, //it means the page that generated by your self


	/* 
	| ---------------------------------------------------------
	| This setting is for Develope Mode only, you can view DOKULARAVEL Session, also doPrePayment, or doPayment response
	| ---------------------------------------------------------
	| Access the debug url at /debug
	| 
	| will be available if DEBUG_MODE set TRUE
	|
	*/
	'DEBUG_MODE' => FALSE,
];

Silahkan anda atur terlebih dahulu konfigurasi diatas sesuai dengan penjelasan yang ada diatas :) .

5. Uji coba

Untuk mengakses halaman DokuLaravel ini ada 2 parameter yang harus anda lengkapi pada paramete URL .
Base URL : /dokularavel (ini default PAYMENT_PATH bisa anda ganti di konfigurasi)
Parameter 1 : trans_id (ini adalah nomor transaksi pada table anda sendiri)
Parameter 2 : payment_channel (ini adalah jenis pembayaran, anda bisa pilih angka berapa sesuai penjelasan diatas, jika dikosongi atau param ini tidak disertakan, maka halaman pertama akan muncul pilihan jenis pembayaran)
Contoh URL :

http://localhost/projek_anda/public/dokularavel?trans_id=INV0001

Atau anda ingin memilih payment_channel secara langsung, tinggal tambahkan parameter payment_channel, contoh :

http://localhost/projek_anda/public/dokularavel?trans_id=INV0001&payment_channel=04

6. Fungsi HOOK

Pada package "DokuLaravel" ini disediakan fitur HOOK dimana anda bisa menjalankan perintah apapun ketika pembayaran selesai atau sebelum pembayaran. Ada sebuah controller bernama "DokuLaravelHookController.php" di directory controller laravel anda. Terdapat 2 method yakni beforePayment dan afterPayment.

1. beforePayment($data)

Anda bisa menambahkan perintah di dalam method ini, akan dijalankan sebelum pembayaran dilakukan atau berada pada halaman index DokuLaravel. Variabel array $data dimana didalamnya terdapat values yang bisa anda manfaatkan. Keterangan lebih detail anda bisa buka file HOOK tersebut.

2. afterPayment($status,$dataPayment)

Anda bisa menambahkan perintah didalam method ini, akan dijalankan sesudah pembayaran selesai dilakukan. $status merupakan variable boolean yang menandakan apakah pembayaran berhasil atau tidak. $dataPayment merupakan variable array yang berisi values yang bisa anda manfaatkan lebih lanjut buka file HOOK tersebut.

URL Notify

URL ini digunakan untuk memberikan akses DOKU untuk memberikan notifikasi ke Server kita biasanya untuk jenis pembayaran tertentu seperti Permata Bank, anda bisa menuliskan format URL berikut di dashboard Merchant Doku anda pada kolom "URL Notify" :

http://yourdomain.com/dokularavel/notify/[NOTIFY_SCREET_CODE]

[NOTIFY_SCREET_CODE] dapat anda atur pada file konfigurasi. Digunakan untuk alasan keamanan aktifitas tidak diinginkan.

Jenis Pembayaran Yang Tersedia (Payment Channel)

Adapun jenis - jenis pembayaran yang tersedia saat ini di DOKU dan yang terintegrasi pada "DokuLaravel" package ini yakni :

  • 15 = Credit Card
  • 04 = Doku Wallet
  • 02 = Mandiri Clickpay
  • 05 = Permata Bank / ATM Bersama

Studi Kasus Penggunaan

  1. Mobile Apps, Bagi anda yang membutuhkan dalam penggunaan Aplikasi Mobile, anda tinggal membuat WebView dan memasukkan URL DokuLaravel diatas
  2. Website, Bagi anda yang membutuhkan dalam penggunaan Website, anda tinggal memberikan link dan diarahkan ke URL DokuLaravel diatas

Mengenai Doku - http://doku.com

Berdiri sejak tahun 2007, DOKU yang sebelumnya bernama PT. Nusa Satu Inti Artha dikenal sebagai perusahaan penyedia layanan pembayaran elektronik dan manajemen resiko pertama di Indonesia. Dengan semangat kerja keras dan totalitas dalam mendukung kebutuhan bisnis online para merchant, DOKU semakin dipercaya dan menjadi layanan pembayaran elektronik pilihan bagi merchant nasional maupun internasional.

crocodicstudio/dokularavel 适用场景与选型建议

crocodicstudio/dokularavel 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.77k 次下载、GitHub Stars 达 33, 最近一次更新时间为 2016 年 08 月 28 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 crocodicstudio/dokularavel 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 crocodicstudio/dokularavel 我们能提供哪些服务?
定制开发 / 二次开发

基于 crocodicstudio/dokularavel 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 3.77k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 33
  • 点击次数: 20
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 33
  • Watchers: 7
  • Forks: 38
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-08-28