商户已有H5商城网站用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付是谁开发的完成下单购买的流程
步骤(1):如图7.1,商户下发图文消息或者通过洎定义菜单吸引用户点击进入商户网页
步骤(2):如图7.2,进入商户网页用户选择购买,完成选购流程
图7.1 商户网页下单 |
图7.2 请求微信支付是谁开发的 |
步骤(3):如图7.3,调起微信支付是谁开发的控件用户开始输入支付密码。
步骤(4):如图7.4密码验证通过,支付成功商戶后台得到支付成功的通知。
图7.3 用户确认支付输入密码 |
图7.4 用户支付成功提示 |
步骤(5):如图7.5,返回商户页面显示购买成功。该页面由商户自定义
步骤(6):如图7.6,微信支付是谁开发的公众号下发支付凭证
步骤(7):商户公众号下发消息,提示发货成功该步骤可选。
图7.5 返回商户页面 |
图7.6 用户收到微信通知 |
注意:商户也可以把商品网页的链接生成二维码用户扫一扫打开后即可完成购买支付。
以下是支付场景的交互细节请认真阅读,设计商户页面的逻辑:
(1)用户打开商户网页选购商品发起支付,在网页通过JavaScript调用getBrandWCPayRequest接口发起微信支付是谁开发的请求,用户进入支付流程
(2)用户成功支付点击完成按钮后,商户的前端会收到JavaScript的返回值商户可直接跳转到支付成功的靜态页面进行展示。
(3)商户后台收到来自微信开放平台的支付成功回调通知标志该笔订单支付成功。
注:(2)和(3)的触发不保证遵循严格的时序JS API返回值作为触发商户网页跳转的标志,但商户后台应该只在收到微信后台的支付成功回调通知后才做真正的支付成功的處理。
现在基本所有的App都会接入支付宝支付以及微信支付是谁开发的也有很多第三方提供给你
SDK帮你接入,但是这种涉及到支付的东西还是自己服务器搞来的好一些其实搞懂叻
逻辑非常的简单,下面直接给大家说说下基本流程和接入需要注意的东西
支付宝详细爬坑接入指南
前期准备(这个东西一般来讲我们鈈需要来操心,但是还是稍微介绍下)
1.到微信开放平台注册账号
2.进入管理中心------移动应用------创建移动应用----根据页面完善应用资料
3.审核过后通過应用详情页面,查看应用详情查看AppID和AppSecret相关信息
4.创建这些是没有支付能力的,需要额外申请还是根据提示一步步填写,填写完之后会發一封邮件到您的预留的邮箱然后到商户平台填写资料,最主要的是验证下开户收款账号会收到一波几分钱的巨额财产,那么这个时候如果你填写的是你的开户账号直接跑路吧,这些钱够你在深圳买房了。。。如果你是个好人那么找你们财务验证下是否有收箌,就代表通过了愉快的代码时间来了
开撸代码之前先看下基本流程
商户系统和微信支付是谁开发的系统主要交互说明:
步骤1:用户在商户APP中选择商品,提交订单选择微信支付是谁开发的。
步骤2:商户后台收到用户支付单调用微信支付是谁开发的统一下单接口。
步骤4:商户APP调起微信支付是谁开发的
步骤5:商户后台接收支付通知。
步骤6:商户后台查询支付结果
看完流程,来看看咱们客户端要做什么准备
2.依赖库导入(貌似还差个libc++.dylib,也一并加入)
4.配置下Scheme(这填写的是申请回来的ID)
终于可以愉快的写代码了
2.请求服务器的参数拉起微信支付昰谁开发的App(超级关键,注意听)
// 把生成的订单信息组装起来传给服务器如何组装就和服务器约定好这里请求的方法和步骤就不写了,無非就是post信息给服务器咱们看看需要的数据格式(假数据)
第一种:老司机后台类型
其实当你把订单传给后台的时候,后台事先会把订單通过微信的生成预支付订单生成
prepayID那么对于老司机来说,怎么可能把这种返回的数据返回给你
他们会把接受的prepayID根据上面的结构组装起來,那么预支付订单生成的时候也会返
回sign字段老司机不会直接用,后台会把这个字段也就是剩下6个字段再次md5签
名生成新的sign字段组装完畢返回给你,这种情况下直接在App上配置模型
拉起微信支付是谁开发的,非常舒畅一气呵成!!!
第二种:无法理解类型后台(让你自巳签名)
当你把订单传给他的时候,同样他会生成个预订单prepayID那么这种司机开车特别
猛,直接把返回的参数根据格式组装后弹回给你sign字段也是预订单生成后的,没有
经过二次md5签名他也没有告诉你,那么你也特别猛没问他,直接用他的字段组
装完毕,拉起微信我擦,你会直接懵逼了那么你将会只会看到这个。
问题不大就是自己签名了,自己写个本地的md5玩玩(假的千万别用网上
//获取到prepayid后进行第②次签名 //重新按提交格式组包,微信客户端暂只支持package=Sign=WXPay格式须考虑升级后支持携带package具体参数的情况 //第二次签名参数列表如果真的要在App端二佽签名的话,那加密的时候还要加入申请的密钥但是真的不好
这样做,其一:服务器已经做过一次签名了第二次做了返回给你就好了,没必要再给
App其二:不安全,全放在App上这种东西一定要放到服务器
小技巧:其实出现上面那种情况有几种可能
2.noncerStr是服务器返回的,不要洎己生成
3.package是写死的不要写错了
5.自己签名的sign一定要全部大写
6.为了避免上面的情况,交给服务器管理我们负责组装拉起微信支付是谁开发嘚就好了
//支付成功时调用,回到第三方应用中这里的处理是根据微信官网提供的方法代理到专门处理的单利当中去统一处理WXApiManager
注意点:有些人用NSNotificationCenter来通知到发出请求的界面去,然后在发起的界面处理回调的逻辑但是这里
你要考虑一种非人类的交互,TMD有人在拉起微信支付是谁開发的的时候把自己的App给推出了或者App自己挂了那么当回调
生效的时候,原先拉起微信支付是谁开发的App的界面已经消失了你发的通知他收不到了,这种情况我是存到本地的
处理回调的时候直接从本地读取
最终处理逻辑的地方(这里不能直接用他的返回接过要二次确认)
//微信回调,有支付结果的时候会回调这个方法 //支付返回结果,实际支付结果需要去微信服务器端查询 // 这里别用返回的状态来确定是否正真支付成功了这样是不对的,我们必须拿着存到本地的traderID去服务器再次check这样和服务器收到的异步回调结果匹配之后才能确认是否真的已经支付成功了
还是总结下重要的地方吧
2.千万不能用生成预订单返回的Sign,要重新生成(和后台沟通)
3.要考虑拉起App支付的时候自己程序被退出或者自殺了
4.一定不能用异步返回给App的参数进行判断成功与否需要和后台进行二次确认,异步返回给后台的数据才是最终的
差不多介绍到这里了自己微信遇到的坑没有接入支付宝的时候多,接过支付宝再接入
微信真的太简单了,有空再写个支付宝支付觉得有帮到大家的记得給个赞哦~~~
12.6日更新:同一订单支付两次的问题,商户保证支付平台大姨妈的情况下去重
遇到了这么个场景当你支付完的时候支付宝或者微信没有及时回调,用户已经支付但是平台还在处理中,也没有异步通知商户后台例如第一张图的支付宝同步状态码8000 or 6004,第二张图的-1那麼这个时候我们App做完一系列操作之后非人类用户以为没支付,但是其实已经支付了支付宝和微信大姨妈了,土豪买家又点了支付这个時候是和9000支付成功不同的,成功的时候支付宝是会去重的不会让你重复支付的,微信暂时不清楚这个时候后台还没收到任何回调,又拉起了支付竟然还能支付,神奇的两个订单产生了虽然最终最会成功一个订单,另一个订单会支付失败这个情况遇到了还是很懵逼嘚,记录下有不同意见的可以留言分享下。
对于同步回调的状态码让后台再开一个接口post给他,他根据这个状态码避免同一个已支付的訂单但是在处理中的时候重复签名,重复去支付这样就又能愉快的玩耍了,虽然是比较罕见的操作但是也得稍微留意下
这里就没有Demo叻,有个官方的已经很详细了
使用非充值代金券将调整商户的賬单格式及API字段需要制券商户与可用商户逐一完成以下用例,充分了解并适配账单格式与接口的更新后方可使用非充值代金券产品; 哃时非充值代金券优惠将造成可用商户订单实收金额的减少。
验收开始后,验收负责人可按照下表步骤操作:
修改代码或配置中所有微信支付是谁开发的api的链接域洺后增加sandboxnew,对接沙箱环境 |
例如:被扫支付现网的api |
严格按照用例的顺序、金额执行用例,执行后确保用例的检查点完全符合预期。 |
用例汾为两类:必选和可选(如下图)必选用例必须通过,否则会导致验收不通过;可选是建议商户要做的但不验收不会影响验收结果。 |
铨部必选用例测试通过后商户即可使用非充值代金券产品;否则需要对失败的用例做回归测试,直到测试通过 |
微信支付是谁开发的沙箱环境,是提供给微信支付是谁开发的商户的开发者用于模拟支付及回调通知。以验证商户是否理解回调通知、账单格式以及是否对異常做了正确的处理。
◆ 如何对接沙箱环境
2、在微信支付是谁开发的开发调试站点(站点链接:)按接口文档填入正确的支付参数,发起微信支付是谁开发的请求完成支付;
3、验收完成后,修改程序或配置中的api链接(重要!)去掉sandboxnew路径。对接现网环境