您好,请参考: 按照以下几点来检查, 1)你签名中的key,也就是你的API密钥key,这个参数要你们自己到商户平台设置的,设置的规则是32位数字与字母大小写的组合的随机数,不能设置成签名串和参数appsecret,你们有正确设置吗??? 2)检查开放平台对应的包名与签名是否有正确设置。 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5 这里有详细的设置说明。 3)调用支付使用的noncestr这个参数必须和商家服务器调用统一下单接口返回的那个noncestr一致 4)从预支付订单返回的数据 ,没有重新签名,也会引起这个问题。 5)重新安装微信后试试。
微信支付ErrCode -1微信支付签约用户,微信支付时 class WXPayEntryActivity : AppCompatActivity(), IWXAPIEventHandler { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val api = WeChatUtil(this).createWXAPI() try { api.handleIntent(intent, this) } catch (e: Exception) { } } override fun onResp(baseResp: BaseResp?) { LogUtil.e("pay errCode = " + baseResp?.errCode) LogUtil.e("pay errStr = " + baseResp?.errStr) when (baseResp?.errCode) { // TODO 此处始终返回 errCode = -1 检查过APPID, PID 等 没有问题。 BaseResp.ErrCode.ERR_OK -> { if (baseResp.type == ConstantsAPI.COMMAND_PAY_BY_WX) { setPayResult(true) } } else -> setPayResult(false) } }
2019-03-19您好,请详细描述一下您的问题。
调用sandboxnew/getsignkey一直报秘钥错误https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey在调用此接口是,一直报api秘钥错误,检查了商户号和api秘钥是没有错误的
2019-03-19[图片] [图片] [图片] [图片] 您好,请参考: 微信支付有四种支付方式:刷卡支付,公众号支付,扫码支付,APP支付; 前三种支付方式有默认关注公众号功能,APP支付需要额外申请。 微信支付成功后推荐默认自动关注的规则有以下几点: 1、刷卡支付默认有推荐关注 2、公众号支付和扫码支付需要5元以上才有推荐关注 3、APP支付默认没有,需要申请配置,需要有一定用户规模才可以申请 4、已经关注的不展示推荐栏 5、服务号未设置头像的在IOS不展示推荐关注栏 6、用户取消过关注的默认不勾选 7、服务商模式的,需要在特约商户开发配置页设置推荐关注appid 8、订阅号目前是不会有默认推荐关注的 9、对于粉丝数大于50w的公众号,支付成功后不默认勾选关注(公众平台为了避免形成巨大粉丝公众号带来的风险,2016.03.16增加了该条规则) 在服务商模式下,需要在特约商户开发配置页设置推荐关注subappid。 特别注明,APP支付的默认关注目前只对行业的龙头公司才开放申请。
小微商户 推荐关注公众号问题您好: 我们公司作为服务商,已经开发了对应的进件,查询商户,支付目录配置,支付公众号绑定,支付推荐关注公众号等接口; 所有接口均显示成功。 后台展示如下: [图片] 关注公众号配置也正确,如下: [图片] 但是,支付成功后,关注的复选框却没有显示;请问是还有什么步骤没有完成?
2019-03-19您好,目前必须跳转权限页面。
电票存入卡包如何跳过授权页面目前我们有自己的开票平台,想点击“存入卡包”按钮直接存入卡包--我的票卷--我的发票,但是目前必须要跳转权限页面 [图片] ,不想走次页面,直接提示插入卡包成功,如何做?需要做哪些?
2019-03-19 您好,请参考: 解决方法:扎到文件Wxpay.api.php。在该文件中找到 “postXmlCurl”这个方法,然后将证书路径修改为绝对路径即可。 下面说明修改内容: 将证书路径替换为绝对路径: //使用证书:cert 与 key 分别属于两个.pem文件 curl_setopt($ch, CURLOPT_SSLCERT, WxPayConfig::SSLCERT_PATH); curl_setopt($ch, CURLOPT_SSLKEY, WxPayConfig::SSLKEY_PATH); 修改为(这里的代码指的是PHP代码,如果是其他语言请进行相应的修改): curl_setopt($ch,CURLOPT_SSLCERT, dirname(__FILE__).'/'.WxPayConfig::SSLCERT_PATH); curl_setopt($ch,CURLOPT_SSLKEY, dirname(__FILE__).'/'.WxPayConfig::SSLKEY_PATH);
php 微信支付退款返回值[代码]public[代码] [代码]function[代码] [代码]weixin_refund([代码][代码]$order[代码][代码],[代码][代码]$price[代码][代码],[代码][代码]$refund_data[代码][代码]){[代码][代码] [代码][代码]$nonce_str[代码][代码]=rand(0,99999).time(); [代码][代码]//随机字符串[代码][代码] [代码][代码]$wx_appid[代码][代码]=[代码][代码]$this[代码][代码]->wx_appid; [代码][代码]//应用id[代码][代码] [代码][代码]$merchant_key[代码][代码]=[代码][代码]$this[代码][代码]->merchant_key; [代码][代码]//商户key[代码][代码] [代码][代码]$merchant_id[代码][代码]=[代码][代码]$this[代码][代码]->merchant_id; [代码][代码]//商户id[代码][代码] [代码][代码]$total_fee[代码][代码]=[代码][代码]$order[代码][代码][[代码][代码]'price'[代码][代码]]*100; [代码][代码]//订单总金额 需乘以100转换为分[代码][代码] [代码][代码]$refund_fee_price[代码][代码]=[代码][代码]$price[代码][代码]*100; [代码][代码]//退款金额 需乘以100转换为分[代码][代码] [代码][代码]$out_refund_no[代码][代码]=[代码][代码]$refund_data[代码][代码][[代码][代码]'id'[代码][代码]];[代码][代码]//商户退款单号[代码][代码] [代码][代码]$url[代码][代码]=[代码][代码]"https://api.mch.weixin.qq.com/secapi/pay/refund"[代码][代码];[代码][代码] [代码][代码]$notify_url[代码][代码]=[代码][代码]"http://www.showscenic.com/index.php/Index/weixin_refund_api.html"[代码][代码]; //回调地址[代码][代码] [代码][代码]$out_trade_no[代码][代码]=[代码][代码]$order[代码][代码][[代码][代码]'order_id'[代码][代码]];[代码][代码] [代码][代码]$ref[代码] [代码]= [代码][代码]strtoupper[代码][代码](md5([代码][代码]"appid=$wx_appid&mch_id=$merchant_id&nonce_str=$nonce_str&out_refund_no=$out_refund_no&out_trade_no=$out_trade_no&refund_fee=$refund_fee_price&total_fee=$total_fee"[代码][代码]));[代码][代码] [代码][代码]$refund[代码] [代码]= [代码][代码]array[代码][代码]([代码][代码] [代码][代码]'appid'[代码] [代码]=>[代码][代码]$wx_appid[代码][代码], [代码][代码]//应用ID,固定[代码][代码] [代码][代码]'mch_id'[代码] [代码]=> [代码][代码]$merchant_id[代码][代码], [代码][代码]//商户号,固定[代码][代码] [代码][代码]'nonce_str'[代码] [代码]=> [代码][代码]$nonce_str[代码][代码], [代码][代码]//随机字符串[代码][代码] [代码][代码]'out_refund_no'[代码] [代码]=> [代码][代码]$out_refund_no[代码][代码], [代码][代码]//商户内部唯一退款单号[代码][代码] [代码][代码]'out_trade_no'[代码] [代码]=> [代码][代码]$out_trade_no[代码][代码], [代码][代码]//商户订单号,pay_sn码 1.1二选一,微信生成的订单号,在支付通知中有返回[代码][代码] [代码][代码]'refund_fee'[代码] [代码]=> [代码][代码]$refund_fee_price[代码][代码], [代码][代码]//退款金额[代码][代码] [代码][代码]'total_fee'[代码] [代码]=> [代码][代码]$total_fee[代码][代码], [代码][代码]//总金额[代码][代码] [代码][代码]'sign'[代码] [代码]=> [代码][代码]$ref[代码][代码]//签名[代码][代码] [代码][代码]);[代码][代码] [代码][代码]$xml[代码] [代码]= [代码][代码]$this[代码][代码]->arrayToXml([代码][代码]$refund[代码][代码]);[代码][代码] [代码][代码]$ch[代码] [代码]= curl_init();[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_URL, [代码][代码]$url[代码][代码]);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_HEADER, 1);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_RETURNTRANSFER, 1);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_SSL_VERIFYPEER, 1); [代码][代码]//证书检查[代码][代码] [代码][代码]// 设置证书[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_SSLCERTTYPE, [代码][代码]'pem'[代码][代码]);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_SSLCERT, [代码][代码]$_SERVER[代码][代码][[代码][代码]'SERVER_NAME'[代码][代码]]. [代码][代码]'/gzcAPI/apiclient_cert.pem'[代码][代码]);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_SSLCERTTYPE, [代码][代码]'pem'[代码][代码]);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_SSLKEY, [代码][代码]$_SERVER[代码][代码][[代码][代码]'SERVER_NAME'[代码][代码]]. [代码][代码]'/gzcAPI/apiclient_key.pem'[代码][代码]);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_SSLCERTTYPE, [代码][代码]'pem'[代码][代码]);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_CAINFO, [代码][代码]$_SERVER[代码][代码][[代码][代码]'SERVER_NAME'[代码][代码]]. [代码][代码]'/gzcAPI/rootca.pem'[代码][代码]);[代码][代码] [代码][代码]// var_dump($_SERVER['SERVER_NAME']. '/gzcAPI/rootca.pem');[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_POST, 1);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_POSTFIELDS, [代码][代码]$xml[代码][代码]);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);[代码][代码] [代码][代码]$xml[代码] [代码]= curl_exec([代码][代码]$ch[代码][代码]);[代码][代码] [代码][代码]// var_dump(11);[代码][代码] [代码][代码] [代码][代码]// 返回结果0的时候能只能表明程序是正常返回不一定说明退款成功而已[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]$xml[代码][代码]) {[代码][代码] [代码][代码]curl_close([代码][代码]$ch[代码][代码]);[代码][代码] [代码][代码]// 把xml转化成数组[代码][代码] [代码][代码]libxml_disable_entity_loader(true);[代码][代码] [代码][代码]$xmlstring[代码] [代码]= simplexml_load_string([代码][代码]$xml[代码][代码], [代码][代码]'SimpleXMLElement'[代码][代码], LIBXML_NOCDATA);[代码][代码] [代码][代码]var_dump([代码][代码]$xmlstring[代码][代码]);[代码][代码] [代码][代码]$result[代码][代码][[代码][代码]'errNum'[代码][代码]] = 0;[代码][代码] [代码][代码]$result[代码][代码][[代码][代码]'info'[代码][代码]] = [代码][代码]$this[代码][代码]->object_to_array([代码][代码]$xmlstring[代码][代码]);[代码][代码] [代码][代码]var_dump([代码][代码]$result[代码][代码]);[代码][代码] [代码][代码]// return $result;[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]$error[代码] [代码]= curl_errno([代码][代码]$ch[代码][代码]);[代码][代码] [代码][代码]var_dump([代码][代码]$error[代码][代码]);[代码][代码] [代码][代码]curl_close([代码][代码]$ch[代码][代码]);[代码][代码] [代码][代码]// // 错误的时候返回错误码。[代码][代码] [代码][代码]// $result['errNum'] = $error;[代码][代码] [代码][代码]// return $result;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码]返回值 [代码]var_dump([代码][代码]$xml[代码][代码]); 返回 bool(false) [代码]var_dump([代码][代码]$error[代码][代码]); 返回 77[代码][代码] 注掉下面两段代码 [代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_SSLCERTTYPE, [代码][代码]'pem'[代码][代码]);[代码][代码] [代码][代码]curl_setopt([代码][代码]$ch[代码][代码], CURLOPT_CAINFO, [代码][代码]$_SERVER[代码][代码][[代码][代码]'SERVER_NAME'[代码][代码]]. [代码][代码]'/gzcAPI/rootca.pem'[代码][代码]);[代码] 返回值 [代码]var_dump([代码][代码]$xml[代码][代码]); 返回 bool(false) [代码]var_dump([代码][代码]$error[代码][代码]); 返回 52[代码][代码] [代码][代码] 看了半天没看出毛病在哪 求解决 谢谢[代码][代码]
2019-03-19您好,去开发配置服务商模式查询有无绑定子商户号。绑定子商户号的方法是在服务商商户平台里的服务商功能里点开发配置。
【解决】sub_mch_id与sub_appid不匹配商户小程序已经与子商户绑定了,仍然不无法进行支付。是最近两天开的商户。检查了几遍sub_appid和sub_mch_id都是正确的,最近开的两个商户都这样。 [图片] [图片] [图片]
2019-03-19您好,按照以下几点检查, 1,检查回调url是否正确,回调url是不能带参数的,请注意。 2,是否有按照文档要求正确返回参数<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>给到微信。 3,是否开启了防火墙把微信的通知给屏蔽了。 4,是否响应超时。 5,是否正确使用post请求。 6,回调url修改成http协议试试。
公众号支付完成异步回调不起作用按官网的dome做的放到服务器测试 前端的支付已经成功 但回调地址没有被访问 回调地址跟发起支付的地址在一个文件夹下 不知道哪里出了 有工作人员可以帮助下吗
2019-03-19您好,请参考: 初始化: Security.addProvider(new BouncyCastleProvider()); key = new SecretKeySpec(keyBytes, KEY_ALGORITHM); // 初始化cipher cipher = Cipher.getInstance(algorithmStr, "BC"); 加密: cipher.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(ivStr.getBytes("UTF-8"))); byte[] enbytes = cipher.doFinal(contentStr.getBytes("UTF-8")); return new BASE64Encoder().encode(enbytes) 解密: byte[] contentBye = new BASE64Decoder().decodeBuffer(base64Str) cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(ivStr.getBytes("UTF-8"))); byte[] dedata = cipher.doFinal(contentBye); return new String(dedata, "UTF-8");
关于微信支付退款req_info字段解密问题退款成功后退款通知回调req_info字段是加密的 现在通过文档进行base64解码 MD5加密之后进行 key*对加密串B做AES-256-ECB解密(PKCS7Padding)这一步的时候一直报 javax.crypto.BadPaddingException: pad block corrupted 这个错 百度了一堆方法尝试玩还是报这个错 有没有大佬有解决方案的 demo也只有PHP的 也是无语了
2019-03-19您好,请详细描述一下您的问题。
为什么app微信支付非要和包名签名关联一个app的包名和签名必须固定,才能支付,如果我打多渠道包,包名和签名都不一样,就不能用原生微信支付。
2019-03-191.请求频率限制:150qps,即每秒钟正常的申请退款请求次数不超过150次 错误或无效请求频率限制:6qps,即每秒钟异常或错误的退款申请请求不超过6次 2.同一时间请求该接口申请退款用户过多 3.1.接口请求url错误,请仔细检查接口url。 2.退款查询接口,应该请求银联的退款查询接口,不应该请求微信的退款请求查询接口。 3.具体的还需要您详细描述一下错误。
微信接口退款失败1 频率限制,超过2个月之前的订单申请退款请降低频率再重试 这个频率是指调用微信退款接口频率还是什么?频率限制多少次 2 当前使用此业务的用户较多,请稍后再试 什么情况下会发生这个?是我请求次数太多? 3 System Error 只返回这个 为什么会返回这个?怎么处理
2019-03-19