php body参数格式错误,微信支付返回-1 & 参数body如果是中文会签名错误

这段代码展示了如何使用JavaScript实现微信支付的预支付订单生成和支付启动过程。通过调用Ajax请求获取签名并填充到预支付和支付的JSON对象中,然后利用uexWeiXin接口进行预支付ID的获取和支付的发起。预支付ID的回调函数cbGetPrepayId处理了签名错误情况,而支付回调cbStartPay显示支付成功或失败的消息。
摘要由CSDN通过智能技术生成

var appkey = "76D86F7F6F4*******1C4123A15DA8D";

var appid = "wx57a90********6a36a53";

var mch_id = "12714*********1";

var jsonPrepay = {

"appid": appid,

"mch_id": mch_id,

"nonce_str": "",

"body": "dufeng_wechatPay杜风",

"out_trade_no": "",

"total_fee": "1",

"spbill_create_ip": "",

"notify_url": "http://www.7878up.com/",

"trade_type": "APP",

"sign": ""

};

var jsonPay = {

"appid": appid, //(必选) 微信分配的AppID

"partnerid": mch_id, //(必选) 微信支付分配的商户号

"prepayid": "", //(必选)

"package": "Sign=WXPay", //(必选)

"noncestr": "", //(必选)

"timestamp": "", //(必选)

"sign": ""//(必选)

};

//生成预支付订单

function _getPrepayId() {

///获取签名

$.ajax({

timeout: 20000,//请求超时时间(毫秒)

async: false,//异步

dataType: "json",//返回json格式的数据

data: jsonPrepay,

url: "/ASHX/Ajax_web.ashx?appkey=" + appkey + "&action_id=PrepayId&action=GetSign",

success: function (data) {

if (data.Code == 1)

alert(data.Message);

else {

//将获取到的签名加入到json中去

jsonPrepay.sign = data.Value;

var data = JSON.stringify(jsonPrepay);

//开始提交预支付订单

uexWeiXin.getPrepayId(data);

}

},

error: function (XMLHttpRequest, textStatus, errorThrown) {

this;   //调用本次ajax请求时传递的options参数

}

});

}

var weixin_prepayId, _sign, _nonce_str;

//支付

function _startPay(_weixin_prepayId) {

//获取签名

$.ajax({

timeout: 20000,//请求超时时间(毫秒)

async: false,//异步

dataType: "json",//返回json格式的数据

data: jsonPay,

url: "/ASHX/Ajax_web.ashx?appkey=" + appkey + "&action_id=Pay&action=GetSign",

success: function (data) {

if (data.Code == 1)

alert(data.Message);

else {

//将获取到的签名加入到json中去

jsonPay.sign = data.Value;

var data = JSON.stringify(jsonPay);

//开始提交支付

uexWeiXin.startPay(data);

}

},

error: function (XMLHttpRequest, textStatus, errorThrown) {

this;   //调用本次ajax请求时传递的options参数

}

});

}

//预支付回调

function cbGetPrepayId(info) {

/**

*info={"return_code":"FAIL","return_msg":"签名错误"}

*/

var data = JSON.parse(info);

if (data.return_code == "SUCCESS") {

weixin_prepayId = data.prepay_id;

_nonce_str = data.nonce_str;

jsonPay.prepayid = weixin_prepayId;

jsonPay.noncestr = _nonce_str;

_startPay(weixin_prepayId);

} else {

ShowMsg(data.return_msg);

}

}

function cbStartPay(info) {

var json = JSON.parse(info);

if (json.errCode == '0') {

ShowMsg("支付成功");

} else {

ShowMsg(json.errStr);

}

}

window.uexOnload = function () {

//生成预支付订单的回调接口

uexWeiXin.cbGetPrepayId = cbGetPrepayId;

uexWeiXin.cbStartPay = cbStartPay;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值