All Projects → slince → youzan-pay

slince / youzan-pay

Licence: MIT License
基于有赞云和有赞微小店实现个人收款解决方案。

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to youzan-pay

youzan
【不再维护】Youzan SDK.
Stars: ✭ 11 (-84.06%)
Mutual labels:  youzan, youzan-sdk, youzanyun, youzan-pay
PayPalPlugin
Official integration with PayPal Commerce Platform
Stars: ✭ 21 (-69.57%)
Mutual labels:  payment, payment-gateway
paymentgateway
Dokumentace ČSOB platební brány a jejího eAPI pro platby platebními kartami, Apple Pay, mallpay a platebními tlačítky ČSOB.
Stars: ✭ 104 (+50.72%)
Mutual labels:  payment, payment-gateway
adyen-dotnet-api-library
Adyen API Library for .NET
Stars: ✭ 69 (+0%)
Mutual labels:  payment, payment-gateway
laravel-pix
Uma solucão simples para integrar sua aplicação Laravel a API PIX do Banco Central do Brasil
Stars: ✭ 73 (+5.8%)
Mutual labels:  payment, payment-gateway
omnipay-2checkout
2Checkout driver for the Omnipay PHP payment processing library
Stars: ✭ 25 (-63.77%)
Mutual labels:  payment, payment-gateway
sep-pay
Pay.ir Payment Package for Laravel 5.3+
Stars: ✭ 17 (-75.36%)
Mutual labels:  payment, payment-gateway
toss
Toss 결제를 위한 python client library
Stars: ✭ 51 (-26.09%)
Mutual labels:  payment, payment-gateway
adyen-python-api-library
Adyen API Library for Python
Stars: ✭ 41 (-40.58%)
Mutual labels:  payment, payment-gateway
cashier
Cashier is an Elixir library that aims to be an easy to use payment gateway, whilst offering the fault tolerance and scalability benefits of being built on top of Erlang/OTP
Stars: ✭ 43 (-37.68%)
Mutual labels:  payment, payment-gateway
cybersource-sdk-java
Java SDK for CyberSource Simple Order API
Stars: ✭ 44 (-36.23%)
Mutual labels:  payment, payment-gateway
nagadApi
This is Bangladeshi nagad payment gateway api development library. This library can be used in any php application.
Stars: ✭ 20 (-71.01%)
Mutual labels:  payment, payment-gateway
react-native-payumoney
React Native Payumoney (Android/IOS)
Stars: ✭ 18 (-73.91%)
Mutual labels:  payment, payment-gateway
python-daraja
Python Wrapper for interacting with the MPESA Daraja API. More Features to be implemented
Stars: ✭ 20 (-71.01%)
Mutual labels:  payment, payment-gateway
adyen-node-api-library
Adyen API Library for Node.js
Stars: ✭ 82 (+18.84%)
Mutual labels:  payment, payment-gateway
PaymentCardView
Custom Credit/Debit card view
Stars: ✭ 62 (-10.14%)
Mutual labels:  payment, payment-gateway
wc-moldovaagroindbank
WooCommerce maib Moldova Agroindbank Payment Gateway
Stars: ✭ 13 (-81.16%)
Mutual labels:  payment, payment-gateway
midtrans-nodejs-client
Official Midtrans Payment API Client for Node JS | https://midtrans.com
Stars: ✭ 124 (+79.71%)
Mutual labels:  payment, payment-gateway
Paynow-NodeJS-SDK
NodeJS SDK for Zimbabwe's leading payments gateway, Paynow
Stars: ✭ 23 (-66.67%)
Mutual labels:  payment, payment-gateway
adyen-salesforce-commerce-cloud
Salesforce Commerce Cloud (formerly Demandware)
Stars: ✭ 63 (-8.7%)
Mutual labels:  payment, payment-gateway

有赞支付解决方案

利用有赞云和有赞微小店实现个人收款解决方案

Build Status Latest Stable Version Scrutinizer

Installation

使用 Composer 安装

$ composer require slince/youzan-pay

Basic Usage

  • 创建 api 上下文和服务对象
$apiContext = new Slince\YouzanPay\ApiContext(CLIENT_ID, CLIENTD_SECRET, KDT_ID);

$youzanPay = new Slince\YouzanPay\YouzanPay($apiContext);
  • 发起付款
$qrCode = $youzanPay->charge([
    'name' => '测试收款',
    'price' => 1, //单位是分
    'source' => '自身系统的订单id'
]);

echo  "<img src=\"{$qrCode->getCode()}\">"; //用户可以使用微信或者支付宝扫描付款

方法返回 Slince\YouzanPay\QRCode 对象。

  • 验证付款
$qrCodeId = ...
$result = $youzanPay->checkQRStatus($qrCodeId);

var_dump($result); //布尔类型
  • 处理推送

怎么设置推送网上有太多帖子这里不再赘述,假设你已经设置好了推送:

$data = $youzanPay->verifyWebhook($request); 

var_dump($data);

$request 对象可以是 Symfony\Component\HttpFoundation\RequestPsr\Http\Message\ServerRequestInterface, 这表示 symfony , laravel, Sliex, CakePHP ,Slim 等框架用户可以直接将 request对象传给该方法; $request 也可以为null或者数组; 所以如果你不使用任何框架也可以很方便的集成;

如果是合法的有赞推送消息,$data 是一个数组,结构如下(注:下面是个json结构)

{
    "client_id":"6cd25b3f99727975b5",
    "id":"E20170807181905034500002",
    "kdt_id":63077,
    "kdt_name":"Qi码运动馆",
    "mode":1,
    "msg":"%7B%22update_time%22:%222017-08-07%2018:19:05%22,%22payment%22:%2211.00%22,%22tid%22:%22E20170807181905034500002%22,%22status%22:%22TRADE_CLOSED%22%7D",
    "sendCount":0,
    "sign":"5c15274ca4c079197c89154f44b20307",
    "status":"TRADE_CLOSED",
    "test":false,
    "type":"TRADE_ORDER_STATE",
    "version":1502101273
}

关于推送相关的文档可以参考 这里

接收到推送数据以后,你可以得到响应的 交易的id,但并不是你的订单id;用交易 id获取对应的二维码的id:

$trade = $youzanPay->getTrade($data['id']); //上一步获取的id

echo $trade->getQrId();  //获取到二维码id后去你的数据库查询到订单,做相应的处理;

$tradeSlince\YouzanPay\Trade 的实例;注意,为了聚焦业务,该对象只保留了原生数据的部分字段;

License

采用 MIT 开源许可证

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].