J'utilise Java pour développer la fonction de paiement du compte officiel de WeChat, en utilisant la fonction de paiement interne du compte officiel
.Dans la première étape, l'interface de commande unifiée a été ajustée et prepay_id peut être obtenu (le code sera publié ci-dessous. Cependant, lors de l'appel de l'API de paiement via JS, le retour direct est un échec, et la page). n'appelle pas WeChat La fenêtre de paiement clignote, En fait, le contrôle des paiements n'a pas été ajusté du tout, et je ne sais pas ce qui n'a pas fonctionné, je ne peux l'appeler que sur mon téléphone portable pour le voir, et je ne peux pas. mener des enquêtes de suivi. Les données de l'alerte sont un échec direct Le JS spécifique Le code est le suivant
function onBridgeReady(){
var param = {};
param.openid = openid;
param.orderAmount = 11;
param.stageid = 2007;
console.log(param);
//通过下面接口获取统一下单接口参数
var url = puburl + "/wxpay/createOrderinfo";
var data = ajaxUtil.ajaxJson(url, JSON.stringify(param));
console.log(data);
if(data.code != 0) {
console.log(data);
return false;
}
var result = data.data;
alert(JSON.stringify(result));
//上面接口已经获取接口需要的数据,
//根据微信官方提供的demo就是通过下面方式进行参数赋值
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId":result.appId,
"timeStamp":result.timeStamp,
"nonceStr":result.nonceStr,
"package":result.prepay_id,
"signType":result.signType,
"paySign":result.paySign
}, function(res){
//可是程序走到这一步
//打印出 res.err_msg的结果直接就是:get_brand_wcpay_request:fail
//只能在手机上调试,无法查看具体错误原因
alert(res.err_msg);
// 使用以上方式判断前端返回,
//微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,
//但并不保证它绝对可靠。
if(res.err_msg == "get_brand_wcpay_request:ok" ) {
alert("支付成功!")
} else if(res.err_msg == "get_brand_wcpay_request:cancel") {
alert("支付取消!");
} else if(res.err_msg == "get_brand_wcpay_request:fail") {
alert("支付失败!");
}
}
);
}
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
}else{
onBridgeReady();
}
J'espère que vous comprendrez quel est le problème. Si les détails ne sont pas clairement décrits, veuillez le signaler et je vous expliquerai ou publierai le code
Supplément : Le répertoire d'autorisation de paiement configuré et le chemin d'accès à la page de paiement sont cohérents. Cela a été soigneusement confirmé et il n'y a aucun problème !
Cher client, votre URL d'autorisation de paiement WeChat est-elle correctement configurée ? De plus, http et https doivent correspondre strictement
La commande de mise au point a-t-elle été passée avec succès ? En cas de succès, vérifiez si la signature est correcte, puis vérifiez la configuration du répertoire de paiement. Quelles sont les invites spécifiques renvoyées par WeChat ?
Dans ce cas, soit la signature est erronée, soit le mode de paiement est erroné.
En cas d'échec, tapez la résolution entière et WeChat renverra d'autres informations, pas seulement err_msg
Le paramètre de votre package est-il erroné ? La valeur du paramètre est prepay_id=xxx
timestamp : 0, // Horodatage de la signature de paiement Notez que tous les champs d'horodatage utilisés dans WeChat jssdk sont en minuscules. Cependant, le nom du champ timeStamp utilisé par la dernière version de l'arrière-plan de paiement pour générer des signatures doit mettre en majuscule le caractère S
Je ne sais pas si c’est le cas des champs ?