maras0830/laravel-paynow 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

maras0830/laravel-paynow

最新稳定版本:v2.1.13

Composer 安装命令:

composer require maras0830/laravel-paynow

包简介

Laravel 5 for paynow.

README 文档

README

https://github.com/Maras0830/laravel-paynow

ToDo

  • CreditCard Backend Single Transaction
  • Transaction Check
  • Subscription
  • Installment
  • 3-Domain Secure
  • Callback Check

Installation

Enable php extension soap http://php.net/manual/en/book.soap.php

composer require

$ composer require maras0830/laravel-paynow"

add to config/app.php

'providers' => [
   // ....
   Maras0830\PayNowSDK\Providers\PayNowServiceProvider::class
],

publish config file to config/paynow.php

$ php artisan vendor:publish --provider=Maras0830\PayNowSDK\Providers\PayNowServiceProvider

in .env

PAYNOW_DEBUG_MODE=true
PAYNOW_WEB_NO=
PAYNOW_PASSWORD=
PAYNOW_EC_NAME=
PAYNOW_ENCRYPT_KEY=
PAYNOW_IV=
PAYNOW_CARDINAL=

Usage

測試卡號: 4025950011112222 有效年月: 12/12 安全碼:999

  1. CreditCard backend transaction
$now = \Carbon\Carbon::now('Asia/Taipei');
$transaction = new Maras0830\PayNowSDK\CreditCardTransaction($now);

$card_number = '4023730207292803';
$valid_year = '20';
$valid_month = '05';
$safe_code = '685';
    
// $res is transaction response.
$res = $transaction
    ->setEncrypt()
    ->setOrder('測試交易', 'OWLTEST1000111002', 100) // orderinfo strlen > 3
    ->setCreditCard($card_number, $valid_year, $valid_month, $safe_code)
    ->setCustomer(1, 'Eric', '09121212121212', 'test@test.com', '127.0.0.1')
    ->checkout()
    ->decodeAndValidate();
  1. Transaction Check
$my_order_number = 'TEST10001';

$sdk = new Maras0830\PayNowSDK\PayNowAPI();

/**
 * @throws Maras0830\PayNowSDK\Exceptions\OrderNotFoundException
 * @throws Maras0830\PayNowSDK\Exceptions\TransactionException
 * @throws Maras0830\PayNowSDK\Exceptions\OrderIsCancelException
 * @throws Maras0830\PayNowSDK\Exceptions\UnKnownException
 */
$res = $sdk->transactionCheck($my_order_number);

/**
$res => [
    'order_number' => 'xxxxx' // Paynow Order number
    'last4' => 'xxxx'         // CreditCard last4 code
];
**/
  1. Subscription

First Transaction

$now = Carbon\Carbon::now('Asia/Taipei');
$transaction = new Maras0830\PayNowSDK\CreditCardTransaction($now);

$card_number = '4023730207292803';
$valid_year = '22';
$valid_month = '05';
$safe_code = '685';

$account = 'account';
$password = 'password';

/**
 * @throws Maras0830\PayNowSDK\Exceptions\PayNowException
 * @throws Maras0830\PayNowSDK\Exceptions\ValidateException
 * @throws Maras0830\PayNowSDK\Exceptions\TransactionException
 */
$res = $transaction
    ->setEncrypt()
    ->setOrder('測試交易', 'TEST123' . time(), 100) // orderinfo strlen > 3
    ->setCreditCard($card_number, $valid_year, $valid_month, $safe_code)
    ->setCustomer(1, 'Eric', '09121212121212', 'test@test.com', '127.0.0.1', $account, $password)
    ->checkoutAndSaveCard()
    ->decodeAndValidate();

/**
$res = [
    "WebNo" => "70828783"
    "TotalPrice" => 100
    "OrderNo" => "TEST1231593574222"
    "ECPlatform" => null
    "BuySafeNo" => "8000002007014585819"
    "TranStatus" => "S"
    "PassCode" => "FDEA87E80373A00FAD48C89AD5BA32A954675678"
    "RespCode" => "00"
    "ResponseMSG" => ""
    "ApproveCode" => "A00001"
    "last4CardNo" => "2803"
    "CheckNo" => null
    "InvoiceNo" => null
    "batchNo" => null
    "InvoiceStatus" => null
    "Result3D" => ""
    "CIFID_SN" => "1"  // 該卡 token, 請保存
    "ReturnURL" => null
    "ErrorMessage" => ""
]
*/

Others Transaction

$now = Carbon\Carbon::now('Asia/Taipei');
$transaction = new Maras0830\PayNowSDK\CreditCardTransaction($now);

$account = 'account';
$password = 'password';
$card_sn = '123'; // CIFID_SN

$res = $transaction
    ->setEncrypt()
    ->setOrder('測試交易', 'TEST123' . time(), 100) // orderinfo strlen > 3
    ->setCustomer(1, 'Eric', '09121212121212', 'test@test.com', '127.0.0.1', $account, $password)
    ->checkoutBySN($card_sn) // safe_code can use 'XXX'
    ->decodeAndValidate();

/**
$res = [
    "WebNo" => "70828783"
    "TotalPrice" => 100
    "OrderNo" => "TEST1231593574222"
    "ECPlatform" => null
    "BuySafeNo" => "8000002007014585819"
    "TranStatus" => "S"
    "PassCode" => "FDEA87E80373A00FAD48C89AD5BA32A954675678"
    "RespCode" => "00"
    "ResponseMSG" => ""
    "ApproveCode" => "A00001"
    "last4CardNo" => "2803"
    "CheckNo" => null
    "InvoiceNo" => null
    "batchNo" => null
    "InvoiceStatus" => null
    "Result3D" => ""
    "CIFID_SN" => "1"  // 該卡 token, 請保存
    "ReturnURL" => null
    "ErrorMessage" => ""
]
*/

Refund Order

$payment_refund = new Maras0830\PayNowSDK\PaymentRefund();

$res = $payment_refund->refund(
    '8000001910145799460',
    '860.0000',
    '退款測試',
    1,
    '',
    '',
    '',
    'harley@gs8899.com.tw',
    'Harley',
    'harley@gs8899.com.tw'
);

交易錯誤碼

PayNow Code Exception Code Error Msg
0 0 unknown error
01 01 發卡銀行要求回覆(call bank)
02 02 發卡銀行要求回覆(call bank)
04 04 拒絕交易,請聯絡發卡銀行
05 05 發卡銀行拒絕交易
06 06 發卡銀行拒絕交易
07 07 發卡銀行拒絕交易
12 12 拒絕交易,卡號錯誤
14 14 拒絕交易,卡號錯誤
15 15 無此發卡銀行
33 33 拒絕交易,過期卡
41 41 拒絕交易,請聯絡發卡銀行
43 43 拒絕交易,請聯絡發卡銀行
51 51 信用卡額度不足
54 54 拒絕交易,過期卡
55 55 拒絕交易,密碼錯誤
56 56 發卡銀行拒絕交易
57 57 發卡銀行拒絕交易
58 58 發卡銀行拒絕交易
62 62 發卡銀行拒絕交易
87 87 拒絕交易,請聯絡發卡銀行
90 90 銀行系統結算中
96 96 收單行系統功能異常
916 916 主機斷線
920 920 拒絕交易,卡號錯誤
922 922 密碼錯誤
933 933 訂單編號不存在
934 934 發卡行3D頁面驗證錯誤
935 935 發卡行3D頁面驗證錯誤
939 939 MID 停用
N7 1007 拒絕交易,請聯絡發卡銀行
P1 1011 拒絕交易 超過日限額度
Q1 1021 發卡銀行拒絕交易

取消狀態

Code status
0 買家申請退貨
1 買賣家確認
2 銀行退款
3 賣家申請退款

统计信息

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

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 6
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2018-08-08