WeChat. До этого мы изучали платеж H5 в union business, но теперь платеж H5 не поддерживает оплату WeChat, и, наконец, обнаружили, что официальный аккаунт UnionPay business + окно оплаты услуг может поддерживать оплату Alipay + платеж WeChat + union pay.
1. Адрес интерфейса:
Адрес тестового интерфейса: https://qr-test2.chinaums.com
Официальный адрес интерфейса: https://qr.chinaums.com/netpa
2: Описание основных параметров:
Интерфейс использует параметры get. После того, как параметры интерфейса будут непосредственно введены в адрес интерфейса, интерфейс будет напрямую перенесен из браузера в интерфейс
1:в середине
Тип бизнеса, заполните напрямую: yuedandefault
2: неправильно упорядочен
Номер торгового заказа
3:середина
Официальный аккаунт + окно обслуживания бизнеса UnionPay оплачивает номер продавца.
4:msg Src
Источник сообщений, например www.test.com
5: Тип Msg (важен ли этот параметр, в основном различают, что использовать для оплаты)
Тип сообщения: WeChat оплата: WXPay.js Оплата, оплата Alipay: trade.jspa, оплата UnionPay: qmf.spay или qmf.WebPay
6: порядок действий
Описание заказа
7:отметка времени запроса
Время запроса сообщения, формат: гггг ММ ДД ЧЧ: мм: SS, например 2019-10-01 12:12:12
8: tid
В официальном окне “Учетная запись + сервис” компании UnionPay оплачивается номер терминала продукта.
9: общая сумма
Общая оплаченная сумма, единица измерения: минута
10: Уведомить об этом
Адрес уведомления о результатах платежа
11: Возврат
Адрес перехода на страницу
12: знак
Для подписи отсортируйте вышеуказанные параметры в порядке A-Z. После сортировки соедините их символами&. Если после подключения есть escape-символы, удалите их, а затем используйте шифрование MD5 для получения подписи
Три: официальный аккаунт профсоюзного бизнеса и пример оплаты окна обслуживания:
//Test number related information
$mdKey = 'fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW2ysRR';
$mid = '898340149000005';
$tid = '88880001';
$time = time();
$requestTimestamp = date('Y-m-d H:i:s',$time);
$merOrderId = date('YmdHis') . mt_rand(100000, 999999);
$msgType ='qmf.jspay'; // WeChat payment: WXPay.jsPay, Alipay payment: trade.jsPay, UnionPay payment: qmf.jspay (qmf.webPay)
$data = [
'instmid' = > yuedandefault ', // business type
'merorderid' = > $merorderid, // Order No
'mid' = > $mid, // merchant number
'msgsrc' = > www.test. Com ', // message source
'msgtype' = > $msgtype, // message type
'orderdesc' = > test ', // order description
'requesttimestamp' = > $requesttimestamp, // message request time
'TID' = > $TID, // terminal number
'totalamount' = > 1 ', // payment amount
'notifyurl' = >. Judge whether the payment is successful by status value
'returnurl' = >. Judge whether the payment is successful by status value
];
ksort($data);
reset($data);
$options = '';
foreach ($data as $key => $value) {
$options .= $key . '=' . $value .'&';
}
$options = rtrim($options, '&');
//If there are escape characters, remove them
if(get_magic_quotes_gpc()){
$options = stripslashes($options);
}
$sign = md5($options . $mdKey);
$options .= '&sign=' . $sign;
$url = 'https://qr-test2.chinaums.com/netpay-portal/webpay/pay.do?'.$options;
//After getting the URL, just jumpЗначение параметра статуса возвращается после оплаты:
4: Возврат платежа
Поскольку при оплате происходит возврат средств, как осуществить возврат средств
1: Интерфейс возврата средств
Тестовый интерфейс: https://qr-test2.chinaums.com
Официальный интерфейс: https://qr.chinaums.com/netpa
2: Описание основных параметров
((1)msgstr
Источник, например: www.test.com
(2)Тип MsgType
Источник сообщения, заполните напрямую: возврат средств
((3)отметка времени запроса
Время запроса сообщения, формат гггг ММ ДД ЧЧ: мм: СС, например: 2019-10-01 12:12:12
(4)Мерор-рид
Номер торгового заказа
((5)в середине
Тип бизнеса, заполните yuedandefault напрямую
(6)середина
Официальный аккаунт + окно обслуживания бизнеса UnionPay оплачивает номер продавца.
(7)tid
В официальном окне “Учетная запись + сервис” компании UnionPay оплачивается номер терминала продукта.
( 8)Возврат средств
Сумма возврата в баллах
((9)описанный возврат средств
Инструкция по возврату средств
(10)подпишите
автограф
Способ реализации такой же, как подпись при оплате
5: Экземпляр возврата платежа
//Test number related information
$mdKey = 'fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW2ysRR';
$mid = '898340149000005';
$tid = '88880001';
$requestTimestamp = date('Y-m-d H:i:s',time());
$data = [
'msgsrc' = > www.test. Com ', // message source
'msgtype' = > return ', // message type
'requesttimestamp' = > $requesttimestamp, // message request time
'merorderid' = > $merorderid, // Order No
'instmid' = > $params ['instmid'], // business type
'mid' = > $mid, // merchant number
'TID' = > $TID, // terminal number
'refundamount' = > 1, // refund amount
'refunddesc' = > test ', // refund description
];
ksort($data);
reset($data);
$options = '';
foreach ($data as $key => $value) {
$options .= $key . '=' . $value .'&';
}
$options = rtrim($options, '&');
//If there are escape characters, remove them
if(get_magic_quotes_gpc()){
$options = stripslashes($options);
}
// signature
$sign = md5($options . $mdKey);
$data['sign'] = $sign;
$client = new Client();
$response = $client->createRequest()
->setMethod('POST')
->setUrl('https://qr-test2.chinaums.com/netpay-route-server/api/')
->setData($data)
->setHeaders([
'Content-Type'=>'application/json'
])
->Setformat (client:: format? JSON) // format of submitted data
->send();
if ($response->isOk) {
$data = $response->data;
if ($data['refundStatus'] == 'SUCCESS') {
//Refund successful
return true;
}
}
return false;
}