微信公众号文章已经获授权加入白名单了,为什么系统还是自动替换成原文章?

文章发布之后,授权需要到首页左侧的“原创功能”里找到要授权的文章,再进行添加白名单和授权操作才可以。

文章发布之后在文章的编辑页面里,进行授权操作解决不了授权的问题。


### UniApp 集成 Java 后端实现微信公众号支付 #### 前提条件 确保已配置好Java后端环境并引入必要的依赖项。对于Spring Boot项目,可以通过Maven或Gradle来管理依赖,这相当于将微信官方提供的库导入到本地环境中[^2]。 #### 准备工作 1. **微信公众平台设置** - 注册成为开发者,并创建相应的应用。 - 取`appid`, `secret`以及其他必要参数用于后续开发。 2. **服务器准备** - 确认服务器能够接收来自微信服务器的通知请求。 - 设置域名白名单以及回调URL等信息。 #### 开发步骤 ##### uniApp前端部分 ###### 发起支付请求前的操作 在发起支付之前,先通过uni.request()向自己的服务端发送请求取签名所需的数据包: ```javascript // 调用接口取预支付交易会话标识 async function getPrepayId(orderInfo) { const res = await uni.request({ url: 'http://yourserver/getprepayid', // 替换成实际的服务端地址 method: "POST", data: orderInfo, header: {'content-type': 'application/json'} }); return res.data; } ``` ###### 处理返回数据并调用微信JS-SDK完成支付 收到服务端响应后,解析其中的内容并通过wx.chooseWXPay方法启动支付流程: ```javascript function startPayment(prepayData){ wx.config({ ... }); // 初始化config wx.ready(function(){ wx.chooseWXPay({ timestamp : prepayData.timeStamp, // 支付签名时间戳 nonceStr : prepayData.nonceStr, // 支付签名随机串 package : prepayData.packageValue, // 统一订单号 signType : prepayData.signType || 'MD5',// 微信签名方式,默认为'MD5' paySign : prepayData.paySign, // 支付签名 success(res){ /* 成功后的处理 */ }, fail(err){ /* 错误处理 */} }) }); wx.error(function (res) { console.log('config info:' + JSON.stringify(res));}); } ``` 以上代码片段展示了如何利用uniApp框架中的API与微信JS-SDK交互以执行支付操作[^1]。 ##### Java(SpringBoot)后端部分 为了简化说明,在此仅展示核心逻辑而不涉及具体业务细节。假设存在一个名为WeChatService的服务类负责处理所有关于微信支付的任务。 ###### 创建统一下单接口 定义一个HTTP POST映射路径供前端调用来生成预支付ID(`prepay_id`)和其他必需的信息。 ```java @RestController @RequestMapping("/wechat") public class WechatController { @Autowired private WeChatService weChatService; @PostMapping("/getprepayid") public ResponseEntity<UnifiedOrderResult> createOrder(@RequestBody OrderRequest request) throws Exception{ UnifiedOrderResult result = this.weChatService.createUnifiedOrder(request); return new ResponseEntity<>(result, HttpStatus.OK); } } ``` ###### 实现具体的下单过程 该函数内部实现了调用微信支付API的过程,包括但不限于组装请求体、计算签名值等动作。 ```java @Service class WeChatServiceImpl implements WeChatService{ @Override public UnifiedOrderResult createUnifiedOrder(OrderRequest req)throws WxPayException{ try { Map<String,String> params=new HashMap<>(); // 构建必填字段... params.put("body",req.getBody()); params.put("out_trade_no",req.getOutTradeNo()); ... String xml=buildXml(params); // 将Map转XML字符串 HttpClient client=new DefaultHttpClient(); HttpPost postMethod=new HttpPost("https://api.mch.weixin.qq.com/pay/unifiedorder"); postMethod.setEntity(new ByteArrayEntity(xml.getBytes())); HttpResponse response=client.execute(postMethod); InputStream inputStream=response.getEntity().getContent(); SAXReader reader=new SAXReader(); Document document=reader.read(inputStream); Element root=document.getRootElement(); UnifiedOrderResult ret=new UnifiedOrderResult(); ret.setCodeUrl(root.elementTextTrim("code_url")); ... return ret; } catch(Exception e){ throw new RuntimeException(e.getMessage(),e.getCause()); } } private static final String buildXml(Map<String ,String > map){ StringBuilder sb=new StringBuilder("<xml>"); for(String key:map.keySet()){ sb.append("<").append(key).append(">").append(map.get(key)).append("</").append(key).append(">\n"); } sb.append("</xml>"); return sb.toString(); } } ``` 上述示例中包含了构建统一订单所需的大部分要素,但请注意实际部署时还需要考虑安全性因素如HTTPS连接验证等问题[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值