Java的语言特点是什么(java语言的主要特点是什么)
757
2022-05-30
在接入微信支付插件时,如果使用方案一完成,难点还是在getOrderId。这个方法的服务器端实现,还要多参考微信提供的接口文档。对接起来还是有很多小坑的,希望以下经验,能给您提供帮助。
参考接入接口 : https://pay.weixin.qq.com/wiki/doc/api/index.html
管理端后台的Java主体代码如下:
/** * 微信支付获取预支付订单号 *
说明:
1)其中,WxpayPreConfig类的内容,参考接口文档,自己拼凑即可。
2)prop.getWxSendUri() = https://api.mch.weixin.qq.com/pay/unifiedorder
3)附上MD5签名方法,注意map的排序。
public static String getMD5Sign(Map
说明:这里附上的代码,仅提供开发思路。可能不全。如果需要源代码者,再线下联系。可以提供相关代码。
如下为,正确统一下单之后,返回的结果数据:
【微信统一下单参数结果】
在APP一侧的JS代码中,对接如下:
/** * 微信支付 * 微信支付的最小单位是分 * 注意Number(price) * 100的冗余错误,加上parseInt修正 * parseInt(Number(price) * 100) * @param tradeNo 商户系统内部的订单号 * @param price 订单总金额,只能为整数,单位:分(¥) */ function execWxpay(tradeNo, price, desc) { var data = { tradeNo : tradeNo, totalFee : price, description : '支付订单' } ajax.post('app/wxpay-order-info.action', data, function(data) { if (!extApi.isNullObj(data)) { var wxPay = api.require('wxPay'); wxPay.payOrder({ apiKey : data.appid, orderId : data.prepayid, mchId : data.partnerid, nonceStr : data.noncestr, timeStamp : data.timestamp, package : 'Sign=WXPay', sign : data.sign }, function(ret, err) { if (!ret.status) { var msg = getWxRetErrorCodeMsg(err.code); extApi.alert(msg, '支付结果'); } if (ret.status) { closePayWin(); } }); } }); } /** * 微信支付失败时返回的错误码 * -2:用户取消 * -1:未知错误,可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等 * 1:apiKey值非法 */ function getWxRetErrorCodeMsg(code) { switch(code) { case '-2': return '用户取消'; case '1': return 'apiKey值非法'; default: return '未知错误'; } }
正确提交支付后,微信返回的支付成功数据串,示例如下:
【微信支付回调时的String参数】
特别注意:
1)尤其是APP和微信公众号都有接入的项目,一定要注意二者之间的差异。主要在账号上,不能混用,否则支付会一直不成功。
2)在附件中,会携带主要的Java类方法。但可能还是会不全。
以上内容,希望对您有用。
附件: wxpay.zip 3.87KB 下载次数:1次
Java 移动APP
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。