Рубрики
Uncategorized

PHP для осуществления оплаты официального аккаунта union business + оплата окна обслуживания

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

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;
}