Red de conocimiento informático - Conocimiento del nombre de dominio - Pago del Mini Programa WeChat (1. Generar prepaid_id) 2018-08-06

Pago del Mini Programa WeChat (1. Generar prepaid_id) 2018-08-06

Plataforma pública WeChat: plataforma pública WeChat

Plataforma comercial:

/index.php/core/home/login

Desarrollo La API del manual de usuario es:?

/wiki/doc/api/index.html

/wiki/doc/api/wxa/wxa_api.php?chapter=9_1

Generar interfaz de prueba XML: interfaces de prueba

/wiki/tools/signverify

Generador de código aleatorio de 32 bits

1 parámetro de configuración, ninguno de ellos pueden Menos (estos son parámetros obligatorios, hay otros parámetros opcionales, también puede completar el estado de ánimo)

appid El identificador único del subprograma, por ejemplo: wxed9dxxx6d6cxxx9e

cuerpo Puede escribir una descripción del producto, por ejemplo: Soy la descripción del producto, el usuario compró dos panecillos al vapor

mch_id ID del comerciante que debe verse en la plataforma del comerciante Ver en la plataforma del comerciante (¿se puede obtener? después de solicitar con éxito la plataforma comercial), por ejemplo: 149411****2

nonce_str cadena aleatoria (sin punto decimal (no verificado)), por ejemplo: 76521019851170500000

notify_url dirección de notificación después del éxito, por ejemplo: /pay/unifiedorder interface

notify_url

Si la firma es correcta, obtendremos con éxito el ?prepay_id en formato xml; , realizaremos la siguiente búsqueda de errores.

~~: ¿Quieres realizar una búsqueda de errores? Puede eliminar los parámetros en la interfaz de prueba. En circunstancias normales, no se generará ninguna excepción después de xml si aún se informa un error.

Intenta cambiar la clave de la plataforma comercial (consulta el paso 3 para obtener más detalles).

¿Parece que mucha gente se ha encontrado con este problema? ...

// Diccionario ordenar key1=xxx&key2=zzz Empalmar en cadena

function joinToStr(_obj) {

let keyArr = [];

for (let key in _ obj) {

keyArr.push(key);

}

keyArr = keyArr.sort();

console.log("keyArrSort--->", keyArr);

// paySign = MD5(appId=wxd678efh567hg6787&nonceStr= 5K8264ILTKCH16CQ2502SI8ZNMTM67VS&package=prepay_id= wx2017033010242291fcfe0db70013231072&signType=MD5&timeStamp=1490840662&key=qazwsxedcrfvtgbyhnujmikolp111111) = 2 2D9B4E54AB1950F51E0649E8810ACD6

// _str es la cadena encapsulada MD5 que forma parte de paySign

let _str = "";

let len ​​​​= keyArr.length;

for (let i = 0; i < len; i++) {

if (i == len - 1) {

_str += (keyArr[i] + "=" + _obj[keyArr[i]]);

} else {

_str += ( keyArr[i ] + "=" + _obj[keyArr [i]] + "&");

}

}

return _str;

}