Code Monkey home page Code Monkey logo

yii2-payment's Introduction

YII2 Việt Nam Payment

Yii2 Extension hổ trợ bạn tích hợp các cổng thanh toán trong nước.

Latest Stable Version Total Downloads Build Status Code Coverage Scrutinizer Code Quality Yii2

Hiện nay các cổng thanh toán trong nước có cấu trúc API rất đa dạng và ít có điểm chung, khiến cho việc chúng ta xây dựng các api-client cũng gặp nhiều khó khăn, chính vì vậy extension này được sinh ra nhằm đồng bộ các phương thức của các cổng thanh toán, giúp cho việc tích hợp sẽ dễ dàng hơn, nó được thiết kế theo nguyên tắc DRY giúp bạn tối giản lại các tham trị khi tạo request gửi lên các cổng thanh toán, chính vì tất cả các cổng thanh toán đều có phương thức chung nên nó sẽ giúp cho bạn chuyển tiếp từ cổng thanh toán này sang cổng thanh toán khác đơn giản hơn.

Ví dụ:

$baoKim->purchase([
    'order_id' => 2, 
    'total_amount' => 500000, 
    'url_success' => '/'
]);

$nganLuong->purchase([
    'bank_code' => 'VCB',
    'buyer_fullname' => 'vxm',
    'buyer_email' => '[email protected]',
    'buyer_mobile' => '0909113911',
    'total_amount' => 10000000,
    'order_code' => microtime()
]);

$onePay->purchase([
    'ReturnURL' => 'http://localhost/',
    'OrderInfo' => time(),
    'Amount' => 500000,
    'TicketNo' => '127.0.0.1',
    'AgainLink' => 'http://localhost/',
    'Title' => 'Hello World',
    'MerchTxnRef' => time()
]);

$vnPayment->purchase([
    'TxnRef' => time(),
    'OrderType' => 100000,
    'OrderInfo' => time(),
    'IpAddr' => '127.0.0.1',
    'Amount' => 1000000,
    'ReturnUrl' => 'http://localhost'
]);

$vtcPay->purchase([
    'amount' => 100000,
    'reference_number' => time()
]);

$momo->purchase([
    'amount' => 100000,
    'orderId' => time(),
    'requestId' => time(),
    'returnUrl' => 'http://localhost',
    'notifyUrl' => 'http://localhost/notify',
]);

Các cổng thanh toán được hổ trợ:

Yêu cầu

Cài đặt

Cài đặt thông qua composer nếu như đó là một khái niệm mới với bạn xin click vào đây để tìm hiểu nó.

composer require "yiiviet/yii2-payment"

hoặc thêm

"yiiviet/yii2-payment": "*"

vào phần require trong file composer.json.

Tài liệu

yii2-payment's People

Contributors

vuongxuongminh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

yii2-payment's Issues

PHP Version

image
Xampp mình cài php 7.2 không cài được.

Kế hoạch phát triển phiên bản tiếp theo

  • Hổ trợ lấy danh sách ngân hàng phục vụ cho việc xây dựng widget hổ trợ lấy id của ngân hàng truyền vào phương thức purchase .
  • Hổ trợ widget lấy danh sách ngân hàng bao gồm:
    • List
    • Dropdown list

Bảo Kim lỗi xác minh dữ liệu checksum

Hiện tại do chúng ta phân biệt ký tự hoa thường (sensitive) nên đôi khi không khớp với kiểu dữ liệu gửi từ Bảo Kim.

Cách giải quyết: hổ trợ thêm thuộc tính caseSensitive ở lớp \yiiviet\payment\HmacDataSignature

Hổ trợ bank validator

Hiện đã có bank widget #1 cung cấp danh sách ngân hàng nhưng lại thiếu validator để kiểm tra tính hợp lệ của mã ngân hàng khi gửi lên. Nên ta nên hổ trợ thêm lớp validator để đảm nhiệm vấn đề này.

Xóa các magic properties tại vnpayment và onepay

Hiện việc hổ trợ đơn giản hóa các prefix vnp_ hay vpc_ làm cho việc khó hiểu xảy ra khi so sánh các tham trị với tài liệu của 2 cổng thanh toán trên nên từ version 1.1.0 nên xóa bỏ magic properties.

Hổ trợ IPN Action

Nhằm đơn giản hóa việc verify ipn mình đề xuất nên hổ trợ thêm action IPN để hổ trợ thao tác kiểm tra. Action chỉ việc xử lý thao tác nghiệp vụ thông qua successCallback hay errorCallback.

Lỗi xác minh chữ ký dữ liệu gửi từ OnePay

Hiện phương thức verifyRequest của OnePay đang không xác minh được tính hợp lệ của chữ ký dữ liệu với params phản hồi trong môi trường sandbox:

Array
(
    [vpc_AdditionData] => 970425
    [vpc_Amount] => 500000000
    [vpc_Command] => pay
    [vpc_CurrencyCode] => VND
    [vpc_Locale] => vn
    [vpc_MerchTxnRef] => 1546483863
    [vpc_Merchant] => ONEPAY
    [vpc_OrderInfo] => 1546483863
    [vpc_TransactionNo] => 1681946
    [vpc_TxnResponseCode] => 0
    [vpc_Version] => 2
    [vpc_SecureHash] => 230EB9967004BBC35308BF95BCAAD2D28ADCFD3C928FC5C928BC36C44DE30615
)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.