蜜汁文档
微信的物流助手生成运单后的物流详情页面商品数量该如何修改?微信的物流助手生成运单的后会给顾客发送一个服务提醒,顾客实际下单是一共三件,但是物流详情这边显示的是两件,导致顾客认为下单有问题会找客服质疑; 我想问下这个数量该如何修改填写才能显示正确 看文档是写 goods_count取 shop.detail_list的size, 案例demo看了下detail_list里面也没有写goods_count;想问下下面的方案我该怎么写; 文档链接: https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/express/express-by-business/addOrder.html //方案一: 这时候 shop.goods_count 是不是就不对了 "shop": { "wxa_path": "/index/index?from=waybill&id=01234567890123456789", "detail_list": [{ "goods_name": "微信气泡狗抱枕(小号)", "goods_img_url": "https://mmbiz.qpic.cn/mmbiz_png/OiaFLUqewuIDNQnTiaCInIG8ibdosYHhQHPbXJUrqYSNIcBL60vo4LIjlcoNG1QPkeH5GWWEB41Ny895CokeAah8A/640", "goods_desc": "40cm * 40cm尺寸", "goods_count": 2 //在明细里面写 }, { "goods_name": "微信气泡狗抱枕(中号)", "goods_img_url": "https://mmbiz.qpic.cn/mmbiz_png/OiaFLUqewuIDNQnTiaCInIG8ibdosYHhQHPbXJUrqYSNIcBL60vo4LIjlcoNG1QPkeH5GWWEB41Ny895CokeAah8A/640", "goods_desc": "50cm * 50cm尺寸", "goods_count": 1 //在明细里面写 } ] } //方案二: 这时候 shop.goods_count 就不对了,还是说我手动在 shop.goods_count 再赋值下 "shop": { "wxa_path": "/index/index?from=waybill&id=01234567890123456789", "goods_count": 3, //这边也要写 "detail_list": [{ "goods_name": "微信气泡狗抱枕(小号)", "goods_img_url": "https://mmbiz.qpic.cn/mmbiz_png/OiaFLUqewuIDNQnTiaCInIG8ibdosYHhQHPbXJUrqYSNIcBL60vo4LIjlcoNG1QPkeH5GWWEB41Ny895CokeAah8A/640", "goods_desc": "40cm * 40cm尺寸", "goods_count": 2 //明细里面也要写 }, { "goods_name": "微信气泡狗抱枕(中号)", "goods_img_url": "https://mmbiz.qpic.cn/mmbiz_png/OiaFLUqewuIDNQnTiaCInIG8ibdosYHhQHPbXJUrqYSNIcBL60vo4LIjlcoNG1QPkeH5GWWEB41Ny895CokeAah8A/640", "goods_desc": "50cm * 50cm尺寸", "goods_count": 1 //明细里面也要写 } ] } //方案三: 直接传给 shop.goods_count 不支持按照sku明细来显示数量 "shop": { "wxa_path": "/index/index?from=waybill&id=01234567890123456789", "goods_count": 3,//直接只支持总的数量 "detail_list": [{ "goods_name": "微信气泡狗抱枕(小号)", "goods_img_url": "https://mmbiz.qpic.cn/mmbiz_png/OiaFLUqewuIDNQnTiaCInIG8ibdosYHhQHPbXJUrqYSNIcBL60vo4LIjlcoNG1QPkeH5GWWEB41Ny895CokeAah8A/640", "goods_desc": "40cm * 40cm尺寸" }, { "goods_name": "微信气泡狗抱枕(中号)", "goods_img_url": "https://mmbiz.qpic.cn/mmbiz_png/OiaFLUqewuIDNQnTiaCInIG8ibdosYHhQHPbXJUrqYSNIcBL60vo4LIjlcoNG1QPkeH5GWWEB41Ny895CokeAah8A/640", "goods_desc": "50cm * 50cm尺寸" } ] } [图片][图片] [图片][图片]
星期三 09:24圆通下单后无法取消
物流助手-哪些快递公司支持取消运单,并且物流哪些状态(例如:待揽收)可以取消运单?https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/express/express-by-business/cancelOrder.html 请问哪些快递公司支持取消运单,并且物流哪些状态(例如:待揽收)可以取消运单?
星期三 09:21链接打开是视频号
关于《微信小程序订单管理》接入通知!不接入就不能支付?2025年新规则?[图片] 开发者你好,为保障小程序平台用户的交易体验,方便用户找回订单。平台已上线《小程序购物订单》,请你接入该功能。无法调用支付接口。你的小程序尚未接入此功能,请尽快前往「微信公众平台-订单管理」进行接入。 必须这里要填写么? [图片] 如已配置订单管理-订单信息录入,可忽略本次通知。
01-13解决了么
微信b2b小程序发起支付报错,请问这个是什么错误?请求参数 小程序appId: wxb7f4b7f791d9fe1b { "signData": "{\"amount\":{\"order_amount\":1},\"attach\":\"{\\\"areaId\\\":2,\\\"userId\\\":4835229}\",\"delivery_type\":0,\"description\":\"wxh_31-B2B支付 店内购物\",\"env\":0,\"mchid\":\"1699187242\",\"out_trade_no\":\"24112015465145168104\"}", "mode": "retail_pay_goods", "paySig": "c035a5fea81be34efd728f2905558874d5fa881f9598da39836287a261aba454", "signature": "27701ac8864a241743940625aaa3ce3edede1dbafc808d04321dd7ccd5426639" } {errMsg: "requestCommonPayment:fail webapi_wxa_createmidasorder:fail server system error", errno: 1000, errCode: undefined, message: "requestCommonPayment:fail webapi_wxa_createmidasorder:fail server system error"}
2024-12-24咋解决的
b2b支付 fail server system error 1000?wx.requestCommonPayment 提示 requestCommonPayment:fail webapi_wxa_createmidasorder:fail server system error 1000 然后在小程序公众平台里面的交易订单里 显示订单已关闭
2024-12-24还有一点需要注意,服务端只能用现网appkey 获得方式相同,服务器API只用现网AppKey,不区分环境
B2b订单查询的签名算法是啥样的?没有示例,只回传错误,完全不知道什么原因导致$sd = [ "mchid" => "1686022399", "order_id" => "o202409231626334079372520", ]; $appKey = "rSYw8G8Eua4MYKMXcCgR8TTrJ8gM1wWY"; $paySig = hash_hmac('sha256', 'requestCommonPayment&' . json_encode($sd), $appKey); $url = "https://api.weixin.qq.com/retail/B2b/getorder?access_token=$access_token&pay_sig=$paySig"; $result = curlRequest($url,$sd); 结果:{"errcode":9403200,"errmsg":"参数为空或非法 detail:[支付签名[pay_sig]校验失败] rid: 66f50fce-0ab130f3-408dcdbe"}
2024-12-09我也发现此问题了,官方没人理
B2B支付,支付签名生成参数描述不清晰https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/B2b_store_assistant.html[图片]
2024-12-09退款同问,也是这个报错 $postdata = []; $postdata['mchid'] = $paylog['mch_id']; $postdata['out_trade_no'] = $ordernum; $postdata['order_id'] = $paylog['transaction_id']; $postdata['out_refund_no'] = date('YmdHis').rand(1000,9999); $postdata['refund_amount'] = intval(bcmul($refundmoney, 100, 0)); $postdata['refund_from'] = 1;//退款来源,枚举值 1:人工客服退款 2:用户自己退款 3:其他 // $postdata['refund_reason'] = 0;//退款原因,枚举值 0:暂无描述 1:产品问题 2:售后问题 3:意愿问题 4:价格问题 5:其他原因 $appkey = $appinfo['wxpay_b2b_appkey']; $pay_sig = self::b2b_pay_sig('/retail/B2b/refund',jsonEncode($postdata), $appkey); $rs = curl_post($url.'&pay_sig='.$pay_sig, jsonEncode($postdata)); private function b2b_pay_sig($uri, $post_body, $appkey) { $need_sign_msg = $uri . '&' . $post_body; return hash_hmac('sha256', $need_sign_msg, $appkey); }
小程序B2B支付相关接口?String accessToken = "86_K5ysiq0CNLb662dxUYjHt-UduesOD99RUqcisuMsSePoQiCjwYUcdSqyeZxyyDVfsX25khhmEoIoEccy2odwsml3PB_uIaue9wNYaimNIjWTkFdv9WeCTEfclmS2nkBgCkGY5H0kUJ1zLyAfBJEcAEDKSN"; HashMap map = new HashMap<>(); map.put("mchid", "1697798151"); map.put("out_trade_no", "1217752501201407033233368018"); map.put("env", 0); String paySign = WechatMiniProgramSignUtil.sign("/retail/B2b/getorder", map, APP_PROD_KEY); String jsonString = FastJsonUtils.toJsonString(map); System.out.println("paySign:" + paySign); System.out.println("body:" + jsonString); String url = "https://api.weixin.qq.com/retail/B2b/getorder?access_token=" + accessToken + "&pay_sig=" + paySign; System.out.println("url:" + url); HttpRequestHeaders headers = (new HttpRequestHeaders()).contentType("application/json"); HttpResponse post = HttpUtils.post(url, headers, jsonString); String content = post.getContent(); System.out.println(content); 调用小程序b2b门店助手里面的b2b支付相关接口。渠道返回的错误: 调用的是查询订单接口:/retail/B2b/getorder 请求响应报文: paySign:4900a058bcfe734166a7dd1a866ce266681c99054965dcc1ee5138e2fe3efc40 body:{"mchid":"1697798151","out_trade_no":"1217752501201407033233368018","env":0} url:https://api.weixin.qq.com/retail/B2b/getorder?access_token=86_K5ysiq0CNLb662dxUYjHt-UduesOD99RUqcisuMsSePoQiCjwYUcdSqyeZxyyDVfsX25khhmEoIoEccy2odwsml3PB_uIaue9wNYaimNIjWTkFdv9WeCTEfclmS2nkBgCkGY5H0kUJ1zLyAfBJEcAEDKSN&pay_sig=4900a058bcfe734166a7dd1a866ce266681c99054965dcc1ee5138e2fe3efc40 响应报文: {"errcode":9403200,"errmsg":"参数为空或非法 detail:[支付签名[pay_sig]校验失败] rid: 672ae6ea-6971f120-76724ca5"} 签名方法(java语言): package com.ursa.middle.channel.wechat.mini.program.b2b.store.util; import com.ursa.base.serialize.json.FastJsonUtils; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SignatureException; import java.util.Map; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; /** * @author xxx * @version 1.0.0 * @Description * @date 2024/10/22 */ public class WechatMiniProgramSignUtil { private final static String SHA256 = "HmacSHA256"; public static String sign(String uri, Map signBody, String appKey) throws SignatureException { String bodyStr = FastJsonUtils.toJsonString(signBody).replace("\":\"", "\": \""); String signMsg = uri + "&" + bodyStr; return hmacSHA256(signMsg, appKey); } public static String sign(Map signBody, String sessionKey) throws SignatureException { String bodyStr = FastJsonUtils.toJsonString(signBody).replace("\":\"", "\": \""); return hmacSHA256(bodyStr, sessionKey); } private static String hmacSHA256(String data, String key) throws SignatureException { try { Mac sha256_HMAC = Mac.getInstance(SHA256); SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), SHA256); sha256_HMAC.init(keySpec); byte[] bytes = sha256_HMAC.doFinal(data.getBytes()); return byteArrayToHexString(bytes); } catch (NoSuchAlgorithmException | InvalidKeyException e) { throw new SignatureException("加签异常:" + e.getMessage()); } } private static String byteArrayToHexString(byte[] b) { StringBuilder sb = new StringBuilder(b.length * 2); for (byte value : b) { sb.append(String.format("%02x", value)); } return sb.toString(); } }
2024-12-09就是这么写的 还是报错9403200 $postdata = []; $postdata['mchid'] = $paylog['mch_id']; $postdata['out_trade_no'] = $ordernum; $postdata['order_id'] = $paylog['transaction_id']; $postdata['out_refund_no'] = date('YmdHis').rand(1000,9999); $postdata['refund_amount'] = intval(bcmul($refundmoney, 100, 0)); $postdata['refund_from'] = 1;//退款来源,枚举值 1:人工客服退款 2:用户自己退款 3:其他 // $postdata['refund_reason'] = 0;//退款原因,枚举值 0:暂无描述 1:产品问题 2:售后问题 3:意愿问题 4:价格问题 5:其他原因 $appkey = $appinfo['wxpay_b2b_appkey']; $pay_sig = self::b2b_pay_sig('/retail/B2b/refund',jsonEncode($postdata), $appkey); $rs = curl_post($url.'&pay_sig='.$pay_sig, jsonEncode($postdata)); private function b2b_pay_sig($uri, $post_body, $appkey) { $need_sign_msg = $uri . '&' . $post_body; return hash_hmac('sha256', $need_sign_msg, $appkey); }
B2b申请退款有没有SDK?提示参数为空或非法 detail:[支付签名[pay_sig]校验失败请求地址:https://api.weixin.qq.com/retail/B2b/refund?access_token=84_qGSu4zasllSKLHHITY9QHhxPJhIMj3xG3ooutS8IQ4ZSgesDP1V5nO4oxQa9hMDJfRFclzN5hBOlJc0FUFepZ7i6whawkA0kEzLeYS2DUVtZY2-BRtjyF-5TogQSMBfADALFU&pay_sig=b28d627e8464832b27f9955c76b093969e1c7a9f389d5bd97682aafe271f6ca7 请求数据:{"mchid":"1686022399","out_trade_no":"20240923142431232065","order_id":"o202409231551411832182491","out_refund_no":"r2024092611365718323558","refund_amount":100,"refund_from":1} 响应结果:{"errcode":9403200,"errmsg":"参数为空或非法 detail:[支付签名[pay_sig]校验失败] rid: 66f4d6da-72a6c1db-136fbf81"} $signData = [ "mchid" => "1686022399", "out_trade_no" => "20240923142431232065", "order_id" => "o202409231551411832182491", "out_refund_no" => "r2024092611365718323558", "refund_amount" => 100, "refund_from" => 1 ]; $signData = json_encode($signData, JSON_UNESCAPED_UNICODE); $appKey = "1OQZtyTWw94IUxhhZYPeqxcDuw8voUTN"; $pay_sig = hash_hmac('sha256', 'requestCommonPayment&' . $signData, $appKey);
2024-12-09同问
b2b订单查询总出错:商户未完成建档 。这是什么原因?{"errcode":9403203,"errmsg":"商户未完成建档 detail:[获取商户号信息失败,请确认商户号是否开通成功] rid: 6720e67a-6454d4d8-1a6f84a6"}
2024-12-09