当前位置:首页 > 问答聚合 > 正文内容

微信支付多个域名(微信支付配置域名)

zhuangbi888.com2022-05-24 02:40问答聚合49

今天给各位分享微信支付多个域名的知识,其中也会对微信支付配置域名进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文导读目录:

关于微信支付遇到的哪些坑

最近在研究微信支付,感觉在微信里面买东西,直接微信支付还是蛮方便的,没有支付宝那么麻烦,刷刷朋友圈,顺便就买点东西,生活是如此的惬意,心想微信的这个支付肯定可以做到很牛逼,因为“钱景”无限啊!于是,我开始了这个噩梦般的旅程。

开通和审核

微信支付和支付宝商家平台一样,都是要审核资质的,支付宝个人认证可以使用担保支付,虽然需要用户确认收货之后才能收到资金,但是好歹也是能用的。微信直接不让个人使用支付。只有企业以上级别的服务号才能申请。

开通认证

支付宝注册企业账号,进行企业认证,我总共就花了10分钟,包括公司资质审核,打款到公账确认公账等步骤。效率高到简直无法想象。 微信支付需要已经认证过的服务号才能开通支付。提交完资质,等待审核,花了5个工作日的时间才告诉我资质审核过了,对,没错,是5个工作日,中间隔了一个周末,微信称2-7个工作日认证完成,还是实现诺言了。

开通支付

支付宝需要签约服务,这里我签约的是即时到帐的,花了2天时间。 微信开通认证之后,登陆商户平台配置一下就可以开干了,这点从速度方面比支付宝强点,因为它把支付用途啥的都放到第一步的认证里面了,而支付宝是放在后面的签约服务里面进行审核的。

这些步骤完成之后,就可以开始开发了。虽然如此,从整体进度上面,支付宝还是略胜微信一筹的。

开发

根据文档接入支付宝和微信的支付平台

文档DEMO

支付宝我就没看文档,因为之前有做过,已经大体了解了。直接下了个DEMO改改就完成了。 微信的文档,恩,在微信公众平台有一份,在商户平台又有另外一份,而且内容还不一样。。。 我主要需要在公众号里面支付,所以选择了微信的JSAPI。在公众平台里面,关于JS支付的只有一小段。如下:

wx.chooseWXPay({

timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符

nonceStr: '', // 支付签名随机串,不长于 32 位

package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)

signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'

paySign: '', // 支付签名

success: function (res) {

// 支付成功后的回调函数

}

});

备注:prepay_id 通过微信支付统一下单接口拿到,paySign 采用统一的微信支付 Sign 签名生成方法,注意这里 appId 也要参与签名,appId 与 config 中传入的 appId 一致,即最后参与签名的参数有appId, timeStamp, nonceStr, package, signType。

微信支付统一下单接口文档:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=9_1

微信支付签名算法:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=4_3

微信支付开发教程:https://mp.weixin.qq.com/paymch/readtemplate?t=mp/business/course3_tmpllang=zh_CN

看完方法,有点晕,在看完下面给出的三个链接里面的内容,更晕了。然后又在商户平台找到一份文档。

传送门

这里给了比较详细的资料,也给出了js示例:

注:JS API的返回结果get_brand_wcpay_request:ok仅在用户成功完成支付时返回。由于前端交互复杂,get_brand_wcpay_request:cancel或者get_brand_wcpay_request:fail可以统一处理为用户遇到错误或者主动放弃,不必细化区分。

示例代码如下:

function onBridgeReady(){

WeixinJSBridge.invoke(

'getBrandWCPayRequest', {

"appId" : "wx2421b1c4370ec43b", //公众号名称,由商户传入

"timeStamp":" 1395712654", //时间戳,自1970年以来的秒数

"nonceStr" : "e61463f8efa94090b1f366cccfbbb444", //随机串

"package" : "prepay_id=u802345jgfjsdfgsdg888",

"signType" : "MD5", //微信签名方式:

"paySign" : "70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名

},

function(res){

if(res.err_msg == "get_brand_wcpay_request:ok" ) {} // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。

}

);

}

if (typeof WeixinJSBridge == "undefined"){

if( document.addEventListener ){

document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);

}else if (document.attachEvent){

document.attachEvent('WeixinJSBridgeReady', onBridgeReady);

document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);

}

}else{

onBridgeReady();

}

恩,于是我结合了文档和找到的demo,结合这一段内容开始测试,结果发现,完全没反应。是的,在我的iPhone上面是没有反应的,也许哪里出了问题,一直搞不出反应。 然后我想到了前面还有一种chooseWXPay,搜索了一下,这是新版接口的方法。结合下面的文档参数的计算,成功了。结果是这样的

wx.chooseWXPay({

appId: '{{ $jsParameters['appId'] }}',

timestamp: '{{ $jsParameters['timeStamp'] }}', // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符

nonceStr: '{{ $jsParameters['nonceStr'] }}', // 支付签名随机串,不长于 32 位

package: '{{ $jsParameters['package'] }}', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)

signType: '{{ $jsParameters['signType'] }}', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'

paySign: '{{ $jsParameters['paySign'] }}', // 支付签名

success: function (res) {

if(res.errMsg == "chooseWXPay:ok" ) {

//支付成功

}else{

alert(res.errMsg);

}

},

cancel:function(res){

//支付取消

}

});

这里的$jsParameters是在后台使用微信支付的DEMO里面提供的class生成的。

include_once("WxPayPubHelper.php");

...

public function getParameters(Order $order)

{

$jsApi = new JsApi_pub();

$unifiedOrder = new UnifiedOrder_pub();

//$unifiedOrder-setParameter("detail", $this-order-product-brief_desc);//商品描述

$unifiedOrder-setParameter("body", $order-product-name);//商品描述

$unifiedOrder-setParameter("out_trade_no", $order-order_number);//商户订单号

$unifiedOrder-setParameter("total_fee", $order-price * 100);//总金额,腾讯默认支付金额单位为【分】

$unifiedOrder-setParameter("notify_url", WxPayConf_pub::NOTIFY_URL);//通知地址

$unifiedOrder-setParameter("trade_type", "JSAPI");//交易类型

//非必填参数,商户可根据实际情况选填

$unifiedOrder-setParameter("openid", Auth::user()-wx_openid);//商品ID

$unifiedOrder-setParameter("product_id", $order-product-id);//商品ID

$prepay_id = $unifiedOrder-getPrepayId();

$jsApi-setPrepayId($prepay_id);

return $jsApi-getParameters();

}

我描述你一脸啊,明显第一个是用户openid

还有这个

支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符

你很难搞清楚啥时候改用大写,啥时候该用小写。

还有这个

备注:prepay_id 通过微信支付统一下单接口拿到,paySign 采用统一的微信支付 Sign 签名生成方法,注意这里 appId 也要参与签名,appId 与 config 中传入的 appId 一致,即最后参与签名的参数有appId, timeStamp, nonceStr, package, signType。

就是在调用chooseWXPay的时候,你要自己加上appId,注意,I是大写。否则采用JSAPI方式的时候会提示出错。

还有这个

注:JS API的返回结果get_brand_wcpay_request:ok仅在用户成功完成支付时返回。由于前端交互复杂,get_brand_wcpay_request:cancel或者get_brand_wcpay_request:fail可以统一处理为用户遇到错误或者主动放弃,不必细化区分。

function(res){

if(res.err_msg == "get_brand_wcpay_request:ok" ) {} // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。

}

老版的接口里面是这样描述返回结果的。但是在新版里面变了,是变了,但是满世界找不到变成啥样了。只能自己打出来测试,结果变成如下

success: function (res) {

if(res.errMsg == "chooseWXPay:ok" ) {

//支付成功

...

新版接口里面取消是没有反应的,因为只有success回调。没有任何一个地方说了如何监听用户取消支付。只能自己猜,结果,我果然猜对了。

success: function (res) {

if(res.errMsg == "chooseWXPay:ok" ) {

//支付成功

}else{

alert(res.errMsg);

}

},

cancel:function(res){

//支付取消

}

你以为是res.errMsg == "chooseWXPay:cancel"吗?骚年,你还是太年轻。

设置坑

1、要设置好安全支付目录。这个啥意思?

1、所有使用JS API方式发起支付请求的链接地址,都必须在支付授权目录之下;

2、最多设置3个支付授权目录, 且域名必须通过ICP备案;

3、头部要包含http或https,须细化到二级或三级目录,以左斜杠“/”结尾。

修改会影响线上交易,距正式生效有十分钟左右延迟,建议你避开交易高峰时间修改

就是说,你将要调用JSAPI的那个页面的链接要在这个目录之下才可以。否则,会弹出提示说你的目录没权限。比如你调用JSAPI的页面地址为

http://www.xx.oo/pay/order/1

那么你要把安全目录设置为

http://www.xx.oo/pay/order/

这样设置之后,如果你在如下地址调用,则会报错

http://www.xx.oo/pay/newOrder/1

你可以设置多个支付目录,如果需要的话。

2、设置回调地址,这个不解释。

3、设置警告地址,不解释。

4、商户平台里面设置密钥,在登录了商户平台之后,位于账户设置-API安全里面,先装数字证书,然后设置密钥,32位字符串。设置完了,自己记下来,没错,要自己记下来,因为没法再查看了。

微信公众帐号支付时域名是什么?URL是什么意思

亲,微信的公众平台域名是mp.weixin.qq.com,至于URL意思就是统一资源定位符URL,

统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。

URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。统一资源定位符

只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。

URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个指针。

在因特网的历史上,统一资源定位符的发明是一个非常基础的步骤。统一资源定位符的语法是一般的,可扩展的,它使用ASCII代码的一部分来表示因特网的地址。一般统一资源定位符的开始标志着一个计算机网络所使用的网络协议。

同一个微信支付帐号能够使用在多个域名下吗

可以明确的告诉你不可以,我在做支付的时候就遇到了这样的问题,虽然微信支付接口下js安全域名和业务域名都可以分别设置3个不同的域名,但最关键的一个网页授权域名那儿只能绑定一个域名,这就决定了一个微信支付接口只能在一个域名下使用,不能同时在多个域名下使用了。

多个域名如何使用同一个微信支付账号

多个网站可以使用同一个微信支付商户号,需要填写对应的商户号、商户32位秘钥等

微信支付可以多网站使用吗?

我可以明确告诉你不可以 ,因为我也遇到了这样的问题,每个微信公众号js安全域名和业务域名都可以放3个域名,但网页授权域名只能填一个域名,所以不能多个使用.

关于微信支付多个域名和微信支付配置域名的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

相关文章

山西营销型网站建设(山西网站建设公司)

山西营销型网站建设(山西网站建设公司)

本篇文章给大家谈谈山西营销型网站建设,以及山西网站建设公司对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文导读目录: 1、营销型网站建设有哪些要点 2、营销型网站建设的步骤流程是什么?...

主机屋绑定域名(主机屋空间绑域名)

主机屋绑定域名(主机屋空间绑域名)

本篇文章给大家谈谈主机屋绑定域名,以及主机屋空间绑域名对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文导读目录: 1、主机屋如何解析和绑定域名,我已经购买了域名但不会解析和绑定。 2、...

购买的域名怎么使用(购买完域名如何使用)

购买的域名怎么使用(购买完域名如何使用)

今天给各位分享购买的域名怎么使用的知识,其中也会对购买完域名如何使用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文导读目录: 1、买了域名后怎么用 2、腾讯云申请的域名...

包含phpcms套好的网站放到空间上后台打开的验证码不能显示的词条

包含phpcms套好的网站放到空间上后台打开的验证码不能显示的词条

今天给各位分享phpcms套好的网站放到空间上后台打开的验证码不能显示的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文导读目录: 1、phpcms后台登陆验...

美国西海岸vps代理(美国国外vps)

美国西海岸vps代理(美国国外vps)

今天给各位分享美国西海岸vps代理的知识,其中也会对美国国外vps进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文导读目录: 1、性价比高的美国VPS有哪些?哪个比较值得选用...

服务器放在哪里(服务器都放在哪里)

服务器放在哪里(服务器都放在哪里)

今天给各位分享服务器放在哪里的知识,其中也会对服务器都放在哪里进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文导读目录: 1、计算机房服务器放在哪 2、公司服务器放在什么...

2019组装电脑主机(组装台式机配置推荐2018)

2019组装电脑主机(组装台式机配置推荐2018)

今天给各位分享2019组装电脑主机的知识,其中也会对组装台式机配置推荐2018进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文导读目录: 1、2019自己组装一台电脑,主机价...

专业网站制(专业网站制作服务)

专业网站制(专业网站制作服务)

今天给各位分享专业网站制的知识,其中也会对专业网站制作服务进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文导读目录: 1、网站如何制作? 2、如何进行网站制作 3、制...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。