Рубрики
Uncategorized

PHP реализует платеж UnionPay business H5

Автор оригинала: David Wong.

Платежный интерфейс UnionPay business H5 документ: адрес документа

1: Адрес платежного интерфейса H5:

1: Оплата Alipay

Тестовый адрес: http://58.247.0.18:29015/v1/netpay/trade/h5-pay

Официальный адрес: https://api-mop.chinaums.com/

2: Оплата UnionPay

Тестовый адрес: http://58.247.0.18:29015/v1/netpay/uac/order

Официальный адрес: https://api-mop.chinaums.com/

2: Основные параметры, требуемые интерфейсом

Интерфейс использует параметры get. После того, как параметры интерфейса будут непосредственно введены в адрес интерфейса, интерфейс будет напрямую перенесен из браузера в интерфейс

(1)разрешение

Способ сертификации, заполните напрямую: открытая форма-парам

(2)Приложение

Идентификатор платежного продукта бизнес-пользователя UnionPay H5

(3)метка времени

Временная метка в формате ггггммддхм, например 201910011212

(4)отсутствие

случайное число

(5)содержание

Бизнес – контент представлен в формате JSON и должен быть закодирован по URL-адресу. Конкретная внутренняя информация описана ниже

(6)подпись

Для подписи требуется кодировка URL-адреса. Конкретный метод генерации выглядит следующим образом: base64 ﹣ кодирование (hmachsha256 (идентификатор приложения + метка времени + nonce + sha256 ﹣ шестнадцатеричный код (содержимое, ключ приложения))

Бизнес-контент параметр содержимого описание внутреннего конкретного параметра:

1:отметка времени запроса

Время запроса сообщения, формат гггг ММ ДД ЧЧ: мм: СС, например 2019-10-01 12:12:12

2:неправильный порядок

Номер заказа, сгенерированный самим продавцом. Примечание: нам нужно префиксировать номер заказа, сгенерированный нами самими, 1017

3:середина

Номер продавца платежного продукта бизнес-пользователя UnionPay H5

4:tid

Номер терминала платежного продукта бизнес-пользователя UnionPay H5

5:в середине

Тип бизнеса, заполните напрямую: по умолчанию

6:общая Сумма

Общая выплаченная сумма, единица измерения: цент

7:Время истечения

Время истечения срока действия заказа, формат гггг ММ ДД ЧЧ: мм: СС, например 2019-10-02 12:12:12

8:Уведомить об этом

Адрес уведомления о результатах платежа

9:Возвращение

Адрес перехода на страницу

Три: платеж H5 Пример оплаты Alipay

$appId = '10037e6f6a4e6da4016a670fd4530012';
$appKey = 'f7a74b6c02ae4e1e94aaba311c04acf2';
$mid = '898310148160568';
$tid = '88880001';
//Business content
$time = time();
$content = [
    'requesttimestamp' = > date ('y-m-d H: I: s', $time), // message request time
    'merorderid' = > 1017 '. Date ('ymdhis'), // merchant order number
    'mid' = > $mid, // merchant number
    'TID' = > $TID, // terminal number
    'instmid' = > h5default ', // business type
    'totalamount' = > 1 ', // total amount paid
    'expireTime' = > date ('y-m-d H: I: s', strtotime ('+ 1 day', $time)), // expiration time
    'notifyurl' = [1jeemaa1] ", // payment notice address
    'returnurl' = [1jeemaa1] "// page jump address
];
$timestamp = date('YmdHis', $time);
// random number
$str = md5(uniqid(mt_rand(), true));
$uuid = substr($str, 0, 8) . '-';
$uuid .= substr($str, 8, 4) . '-';
$uuid .= substr($str, 12, 4) . '-';
$uuid .= substr($str, 16, 4) . '-';
$uuid .= substr($str, 20, 12);
$nonce = $uuid;
// signature
$hash = bin2hex(hash('sha256', json_encode($content), true));
$hashStr = $appId . $timestamp . $nonce . $hash;
$signature = base64'encode ((hash_hmac ('sha256 ', $hashstr, $appkey, true)); // $appkey of H5 payment product of UnionPay merchant
$data = [
    'timestamp' = > $timestamp, // timestamp
    'authorization' = > open-form-param ', // authentication method
    'appId' => $appId,//APPID
    'nonce' => $nonce,// random number
    'content' => urlencode(json_encode($content)),//Business content
    'signature' => urlencode($signature),// signature
];
//Interface return information
// Alipay: http://58.247.0.18:29015/v1/netpay/trade/h5-pay
//UnionPay online card free: http://58.247.0.18:29015/v1/netpay/qmf/h5-pay
//UnionPay: http://58.247.0.18:29015/v1/netpay/uac/order
$options = '';
foreach ($data as $key => $value) {
    $options .= $key . '=' . $value .'&';
}
$options = rtrim($options, '&');
//If there is an escape character, remove the escape
if(get_magic_quotes_gpc()){
    $options = stripslashes($options);
}
$url = 'http://58.247.0.18:29015/v1/netpay/trade/h5-pay?' . $options;