нежа-документы
имя | шлюз | Действия поддержки | Поддержка обратного вызова | Примечание |
---|---|---|---|---|
alipay_app | Оплата через приложение Alipay | Оплата/Запрос оплаты/Возврат | платить | |
alipay_qr | Оплата скан-кодом Alipay | Оплата/Запрос оплаты/Возврат | платить | |
alipay_wap | Оплата через мобильный сайт Alipay | Оплата/Запрос оплаты/Возврат | платить | |
alipay_web | Оплата через сайт Alipay для ПК | Оплата/Запрос оплаты/Возврат | платить | |
wechat_app | Оплата через приложение WeChat | Оплата/запрос платежа/возврат/запрос на возврат средств | Уведомление об оплате/уведомление о возврате средств | |
wechat_h5 | Оплата WeChat H5 | Оплата/запрос платежа/возврат/запрос на возврат средств | Уведомление об оплате/уведомление о возврате средств | Встроенная функция получения платежных ссылок. |
wechat_mina | Оплата по мини-программе WeChat | Оплата/запрос платежа/возврат/запрос на возврат средств | Уведомление об оплате/уведомление о возврате средств | |
wechat_official | Оплата официального аккаунта WeChat | Оплата/запрос платежа/возврат/запрос на возврат средств | Уведомление об оплате/уведомление о возврате средств | |
wechat_qr | Оплата скан-кодом WeChat | Оплата/запрос платежа/возврат/запрос на возврат средств | Уведомление об оплате/уведомление о возврате средств | |
Union_web | Веб-платежи UnionPay | Оплата/запрос платежа | уведомление о платеже | старая версия |
Union_app | Веб-платежи UnionPay | платить | уведомление о платеже | старая версия |
paypal_express_checkout | Экспресс-выплата PayPal | Оплата/запрос платежа | уведомление о платеже | нестабильный |
pingan_wechat_h5 | Платеж Ping An Bank WeChat H5 | Оплата/Запрос оплаты/Возврат | платить | |
wechatoversea_official | Трансграничный платеж через общедоступный счет WeChat | Оплата/Запрос оплаты/Возврат | платить |
При подключении к сторонним платежам, особенно при подключении к нескольким сторонним платежам, вам необходимо читать сторонние документы и тратить много времени на сборку и отладку параметров, например, вызов стороннего поставщика для оформления заказа и создания Если вам нужно одновременно подключиться к WeChat и Alipay, то вам нужно собрать документы, что, можно представить, весьма хлопотно (на самом деле, ничего страшного... ххх...).
Этот компонент предоставляет три части для общения с третьими сторонами:
Каждая часть разделена на различные действия. Каждое действие привязано к фиксированной форме (Форма), а содержание каждой формы фиксировано.
Например, при активном вызове третьей стороны для размещения заказа и создания платежа (ChargeRequest) он использует форму ChargeRequestForm
. После заполнения формы и передачи компонента компонент может обработать параметры и вызвать третьего. -партийная оплата.
Таким образом, вам нужно только понять содержимое формы компонента, чтобы раз и навсегда подключиться к нескольким сторонним платежам (несуществующим ххх).
В качестве примера мы возьмем оплату через веб-сайт Alipay на ПК. Если вам нужно использовать другие платежные шлюзы, вам нужно только изменить $gateway
переданный при создании экземпляра Cashier
.
Обратите внимание, что базовой валютной единицей, используемой компонентом, являются центы.
<?php
use Runner NezhaCashier Cashier ;
// 按格式组装好配置
$ config = [
' app_id ' => ' xxxx ' ,
' app_private_key ' => ' xxxxx ' ,
' alipay_public_key ' => ' xxxxx ' ,
];
// 创建实例, 传入要使用的 Gateway
$ cashier = new Cashier ( ' alipay_web ' , $ config );
Создать платеж
<?php
// 组装 ChargeRequestForm
$ data = [
' order_id ' => ' 151627101400000071 ' ,
' subject ' => ' testing ' ,
' amount ' => 1 ,
' currency ' => ' CNY ' ,
' description ' => ' testing description ' ,
' return_url ' => ' https://www.baidu.com ' ,
' expired_at ' => ' 2018-01-23 19:00:00 ' ,
];
$ form = $ cashier -> charge ( $ data );
// 以 laravel 为例
return redirect ( $ form -> get ( ' charge_url ' ));
Проверить оплату
<?php
$ form = $ cashier -> query ([
' order_id ' => ' 151627101400000071 ' ,
]);
var_dump ( ' paid ' === $ form -> get ( ' status ' ));
получать уведомления
<?php
$ form = $ cashier -> notify ( ' charge ' );
var_dump ( ' paid ' === $ form -> get ( ' status ' ));
var_dump ( $ form -> get ( ' trade_sn ' )); // 取得第三方交易号
Возвращать деньги
<?php
$ form = $ cashier -> refund ([
' order_id ' => ' 151627101400000071 ' ,
' refund_id ' => ' 3151627101400000071 ' ,
' total_amount ' => 1 ,
' refund_amount ' => 1 ,
]);
Имя поля | Это необходимо | Описание поля | Примечание |
---|---|---|---|
идентификатор заказа | да | Номер заказа | |
предмет | да | Название заказа | |
количество | да | Сумма заказа | Обратите внимание, что некоторые каналы оплаты имеют верхний предел суммы. |
валюта | да | Валюта заказа | Обратите внимание на каналы оплаты |
описание | да | Описание заказа | Платежные каналы будут иметь разные ограничения по длине. |
user_ip | нет | IP-адрес пользователя | |
return_url | нет | адрес обратного вызова | Канал оплаты веб-типа должен быть заполнен. |
show_url | нет | отображаемый адрес | |
тело | нет | Детали заказа | мне следует удалить этот параметр |
истекло_в | нет | Срок годности | временная метка Unix |
создано_at | нет | время создания | Временная метка Unix, вы не можете поверить, что вам это вообще нужно?? |
Остальные еще предстоит добавить...
Вопрос : Каковы преимущества по сравнению с другими SDK?
О : Независимо от того, насколько элегантен и прост в использовании SDK, большинство из них требуют, чтобы вы передавали параметры в соответствии с именами сторонних параметров. Затем вам придется прочитать документацию и выполнить большую обработку в файле. код. Я хочу, чтобы после получения заказа из базы данных его можно было обработать один раз для доступа к нескольким платежам.
Вопрос : Нет ли необходимости читать сторонние платежные документы?
О : Нет, я предлагаю вам все равно посмотреть на это, и некоторые платежи в компоненте (например, официальный аккаунт WeChat) должны передавать некоторые специальные параметры. Компонент просто помогает вам решить раздражающую проблему звонков.
Массачусетский технологический институт