cancel_currency_pay接口是用来退currency_pay接口扣减的值,需要保证你传的pay_order_id字段是之前调用currency_pay接口时传的order_id字段
如何解决小程序虚拟支付-代币支付退款接口报“数据不存在”问题?https://api.weixin.qq.com/xpay/cancel_currency_pay?access_token=xxx&pay_sig=xxx&signature=xxx {\"errcode\":268490002,\"errmsg\":\"数据不存在 rid: 64d5ad59-654b7e21-374e63a7\"}
2023-08-11请求包收到是空的,请确认一下是否是用POST方法,数据格式为json放在post的body里,content-type设置成application/json
小程序虚拟支付的代币支付退款cancel_currency_pay接口报openid字段错误?cancel_currency_pay接口地址:https://api.weixin.qq.com/xpay/cancel_currency_pay?access_token=xxx&pay_sig=xxx返回信息:errcode:268490002 errmsg:openid字段错误 rid: 64d0593c-0891eb09-5aa1ffe9
2023-08-07pay_sig校验失败,不要用"12345"这个key,要用mp页面上的appkey
小程序虚拟支付调用接口时,为啥根据文档的python代码写的一样规则,为啥还是报错提示签名校验失败?文档地址:https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html#_2-4-%E7%AD%BE%E5%90%8D%E8%AF%A6%E8%A7%A3 问题1)签名详解没有具体说明signData包含的参数转字符串规则,不同接口参数不同参数如果排序不同加密处理的结果也会不同,请说明一下加密字符串规则? 根据文档底部提供的python代码转换为php代码后,输出参数pay_sig、signature结果和python一致。 但切换为实际参数后就提示 "errmsg" => "签名校验失败 rid: 64cb7c4b-04288911-3af4b778" public function testTignature() { $uri = '/xpay/query_user_balance'; $data = [ "openid" => "xxx", "user_ip" => "127.0.0.1", "env" => 0, ]; $jsonBody = str_replace(':', ': ', json_encode($data)); $jsonBody = str_replace(',', ', ', $jsonBody); $query = [ 'pay_sig' => hash_hmac('sha256', $uri . '&' . $jsonBody, "12345"), 'signature' => hash_hmac('sha256', $jsonBody, "9hAb/NEYUlkaMBEsmFgzig=="), ]; dump($query); } 输出结果: "pay_sig" => "c37809f27c6d7fd1837ad2500a04512b66b34fd793a39a385fade56dca89a4b5" "signature" => "089d9e8dc5d308977360c4b79ec600a93d736802802a807d634192328032f6c7"
2023-08-03是第二个签名(signature)校验失败,看看是不是session_key被其他操作刷新了
微信小程序虚拟支付对接报签名错误?参考文档:https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html 调用接口: https://api.weixin.qq.com/xpay/query_user_balance?access_token=71_n_O9fO__O0bLuVr-kjIgNXmxHmsOU7fURFSpfTTRvYp7tReFzt4bDrGEqNgGFpCZfnbaZMAaOneDFfTOh_Il9QtRkpOlZxmGNlgWjSnSbdmNb0nX8Wwx27LLfYoYMGcABANBV&pay_sig=ef671bb980a4de54f6f6a93f54165701aad5ba4835b4d117f52381d6ca07df4f&signature=96fb3d84dc5d09a7accb2df460a8cb934ed5ad863d99c37f83907e8065989608 请求参数: {"openid":"oSOB25Id4x-dMBmicDnvEPycdMnM","user_ip":"127.0.0.1","env":1} php生成签名的方法(对标上面文档中提供的python脚本改写): /** * pay_sig签名算法计算示例 * @param $uri * @param $postBody * @param $appKey * @return string */ public function calcPaySig($uri, $postBody, $appKey): string { $needSignMsg = $uri . '&' . $postBody; return bin2hex(hash_hmac('sha256', $needSignMsg, $appKey, true)); } /** * 用户登录态signature签名算法 * @param $postBody * @param $sessionKey * @return string */ public function calcSignature($postBody, $sessionKey) { return bin2hex(hash_hmac('sha256', $postBody, $sessionKey, true)); } 返回错误: {"errcode":268490003,"errmsg":"签名校验失败 rid: 64ca5e2f-6884c3cf-184aa397"}
2023-08-03用户未登录或者登录态已经过期,需要重新调用wx.login进行登录
如何解决xpay/query_user_balance接口报“系统错误”问题?https://api.weixin.qq.com/xpay/query_user_balance?access_token=xxx&pay_sig=xxx&signature=xxxx {\"errcode\":-1,\"errmsg\":\"system error detail:[系统错误,请稍后重试] rid: 64ca2120-7c3f75b4-726048f0\"}
2023-08-02