课程名称:Java支付全家桶 企业级各类支付手段一站式解决方案
课程章节:4-7 完成小程序付款
主讲老师:神思者
今天学习的内容包括:
完成小程序付款,含:调整订单表结构、面向对象的数据修改、编写小程序付款下单程序、微信平台返回的结果、封装数据返回成小程序、小程序收到参数后发起支付请求。
1、调整订单表接口,可以通过navicat等连接功能修改表结构,同时需要注意java的实体类,mapper类也需要对应的进行修改,不然程序运行会报错;
2、面向对象的数据修改,单表操作等简易场景,建议通过面向对象的方式进行操作,可以有效减少xml的代码量和提高编程效率;
3、编写小程序付款下单,主要代码如下:
String code = IdUtil.fastSimpleUUID(); WXPay wxPay = new WXPay(myWXPayConfig); Map<String, String> map = new HashMap(); map.put("openid", openid); map.put("out_trade_no", code); map.put("total_fee", amount); map.put("attach", "附加数据-xx分店"); map.put("body", "订单备注-JSAPI支付测试"); map.put("spbill_create_ip", "127.0.0.1"); map.put("notify_url", "xxxxxx"); map.put("trade_type", "JSAPI"); Map<String, String> result = wxPay.unifiedOrder(map);
4、微信平台返回的结果,主要包括:return_code(状态码)、app_id(小程序ID)、mch_id(商户ID)、nonce_str(随机字符串)、sign(数字签名)、result_code(业务结果)、trade_type(交易类型)、prepay_id(支付订单ID);
5、封装数据返回成小程序,主要代码如下:
String prepayId = result.get("prepay_id"); if (null != prepayId && 0 != prepayId.length()) { order.setCode(code); order.setPrepayId(prepayId); orderService.updateById(order); // 生成数字签名 String timeStamp = System.currentTimeMillis()+""; String nonceStr = WXPayUtil.generateNonceStr(); String packageStr = "prepay_id=" + prepayId; String signType = "MD5"; map.clear(); map.put("timeStamp", timeStamp); map.put("nonceStr", nonceStr); map.put("package",packageStr ); map.put("signType", signType); map.put("appId", weiXinConfig.getAppId()); String paySign = WXPayUtil.generateSignature(map, weiXinConfig.getKey()); return R.ok() .put("timeStamp", timeStamp) .put("nonceStr", nonceStr) .put("package", packageStr) .put("signType", signType) .put("paySign", paySign); } else { return R.error("微信支付模块故障"); }
6、小程序收到参数后发起支付请求,主要代码如下:
uni.requestPayment({ "timeStamp": resp.data.timeStamp, "nonceStr": resp.data.nonceStr, "package": resp.data.package, "signType": resp.data.signType, "paySign": resp.data.paySign, success: (res) => { console.log(res); uni.showToast({ title: "支付成功" }) }, fail: (err) => { console.log(err.errMsg) uni.showToast({ title: "支付失败" }) } })
今天看课程视频写手记的第14天,终于坚持到最后了,为自己加油!