折腾了一个多礼拜,终于将微信支付完成了,遇到很多坑,但回想起来,只要严格按照微信的文档开发,还是可以顺利的完成的,只不过自己在开发过程中犯了些错误,而跟微信对接,微信又没有提供友好的返回信息,导致跟踪问题的时间较长。
我们的场景如下:在线下展示产品,客户扫码后,进行支付,收到订单后,再发产品到客户指定的地址。
实现如下:
1、将链接:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=yourAppId&redirect_uri=yourPageUrl&response_type=code&scope=snsapi_base&state=123#wechat_redirect
生成二维码,其中appid就是开发者的appid,redirect_uri就是开发者展示商品的页面的url。客户用微信扫描这个二维码后,会返回一个code,并将页面跳转到指定的redirect_url,将code作为参数附在后面:
http://www.test.com?code=****&state=123;
2、进入商品页后,有了code就可以发起h5的支付,可参考:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1
接口如下:
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();
}
调用这个接口之前,需要调用统一下单接口,可参考:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
以获取prepay_id。
这里遇到的问题:
1、签名需要跟微信提供的验证页面里面进行比较,不要出错了;
2、支付的签名需要重新签,不能用统一支付的签名;
3、参数名的大小写一定要严格按照微信的说明写。
相关推荐
总结起来,支付宝和微信支付作为主流的第三方支付工具,为商家提供了便捷的支付解决方案。开发者在集成这两个支付平台时,需理解并掌握其核心原理、接口调用、回调处理以及安全性保障,以实现安全、高效的支付体验。
总结来说,ASP版微信支付接口是ASP开发者实现在线支付功能的重要工具,通过它,开发者可以轻松地将微信支付功能整合进自己的应用程序,提高业务的支付效率和用户体验。同时,接口的安全性和稳定性也是其受到欢迎的...
### 微信支付Java SpringBoot对接开发详解 #### 一、微信支付配置申请 在进行微信支付集成前,首先需要完成微信支付的基本配置申请。这一步骤至关重要,因为只有完成配置后才能获得接入所需的凭证信息。 1. **...
微信支付JS-SDK是微信...总结来说,调用微信支付JS-SDK并结合JAVA后端,需要掌握微信支付的API接口、签名算法、安全策略以及前后端交互的细节。只有全面理解和熟练运用这些知识点,才能构建出稳定可靠的微信支付系统。
总结来说,微信支付服务商扫码支付实例在PHP中的实现涉及微信支付接口的调用、扫码支付流程的实现以及支付结果的处理。通过理解并实践这个实例,开发者可以掌握微信支付服务商模式下扫码支付的完整流程,从而为自己...
总结来说,H5微信支付为商家提供了无缝集成微信支付的能力,简化了移动支付流程,而微信支付分则是微信生态内的一种信用评价工具,两者结合,为用户提供更加便捷和安全的线上购物体验。开发者在实际应用中,需要根据...
总结来说,整合Java SpringBoot与支付宝和微信支付,涉及的主要步骤包括添加依赖、配置支付参数、创建支付服务、处理支付请求和回调,同时需要注意安全性和用户体验。这个过程需要对SpringBoot、支付宝和微信支付的...
总结起来,“H5微信支付完整demo php版”是一个涵盖从后端生成订单、签名,到前端调起支付、处理回调的全链路示例。通过这个示例,开发者可以快速理解和实现H5环境下使用PHP进行微信支付的功能。在实际项目中,可以...
微信小程序,微信支付所需所有的jar包,包含各种扫码,出示二维码生成,H5直接支付场景,有问题可联系博主
总结来说,微信支付rootca.pem通用根证书是保证微信支付交易安全的重要组件。尽管现在官方不再直接提供,但理解其功能和正确使用方法对于开发者和商家来说仍然是至关重要的。通过保持对微信支付更新的关注,及时获取...
总结,微信支付、退款和企业付款是微信支付生态中的关键服务,而C#作为广泛使用的开发语言,其丰富的类库和强大的功能使得处理这些任务变得相对容易。`WeChatPayDemo`项目为开发者提供了一个起点,通过学习和实践,...
总结来说,微信支付v3.0版本的资料涵盖了从理论到实践的全面内容,为开发者提供了完整的微信支付解决方案。通过深入理解和实践这些知识点,开发者能够将微信支付无缝接入自己的应用,为用户提供便捷安全的支付体验。
总结来说,仿制微信支付密码的效果不仅涉及到前端界面设计,还需要理解支付安全的基本原理,包括密码的加密存储、安全传输和验证策略。在实施过程中,务必注重用户隐私保护和安全性,同时兼顾良好的用户体验。通过...
总结,iOS应用集成支付宝和微信支付涉及的主要知识点包括SDK的下载与集成、配置Info.plist、构建支付请求、处理回调以及安全合规问题。通过参考提供的示例项目,开发者可以快速掌握这些步骤,实现在自己的应用中无缝...
在移动应用开发中,微信支付是一种常见的支付方式,尤其在Android平台上。本项目专注于集成微信支付功能,通过Android APP与Java后台的交互实现支付流程。下面将详细解释这个过程涉及的关键知识点。 首先,**微信...
总结起来,微信支付商户支付模式一的Java版实现主要涉及设置回调URL、接收和验证回调请求、处理支付结果以及返回响应等一系列步骤。开发者需要对微信支付的API有深入理解,并具备扎实的Java编程基础,才能顺利完成...
在实际应用中,开发者需要在用户点击支付按钮后,通过JavaScript调用微信支付的`WeixinJSBridge`接口,启动支付流程。这一过程中,需要传递前面提到的预支付交易会话标识(prepay_id)和其他必要参数。 在使用微信...
总结来说,ECSHOP最新微信支付是电子商务系统与微信支付接口的深度融合,为商家提供了安全、便捷的在线支付解决方案,同时也提升了用户的购物体验。对于ECSHOP用户来说,了解并掌握这一功能的集成和使用,对于提升...
总结,实现Java微信支付功能,需要熟悉微信支付的API接口,掌握SpringBoot框架,以及理解小程序、PC扫码支付和APP支付的业务流程。同时,安全性和异常处理也是不可或缺的部分,确保交易的顺利完成。
总结来说,微信支付工具包简化了开发者的支付集成工作,提供了Native和JSP两种支付方式,以及完善的回调处理机制,确保了支付的顺畅和安全性。通过理解并熟练运用这些知识点,开发者可以快速地在自己的应用中实现...