ios 自己服务器 苹果支付_修复苹果IOS支付
更新记录
1.0.0(2019-07-01)
插件简介
专门用来修复苹果IOS支付时出现"您已购买此App内购买项目。此项目将免费恢复"。
问题描述
首先在IOS平台里面创建“APP内购买项目”,选择的是“消耗型项目”,然后用uni-app官方的支付api进行支付,多支付几次,有时候就会出现提示“您已购买此App内购买项目。此项目将免费恢复”,
特别是在沙盒测试里面支付很大几率出现,我明明选的是消耗型项目,应该每一次都是新的支付,不存在恢复的情况,而且出现这种情况后,后面再怎样支付都是提示这个信息,有时候连删除掉应用,
重新再安装,也是一样的提示,这个对于需要消耗型项目支付的人来说问题太严重了,苹果支付完全没法用,苹果对虚拟产品又不给微信和支付宝进行支付,项目就一直卡在这上面了。
问题原因
上网搜了一圈,发现遇到的人不少,原因是苹果的服务器对大陆访问很慢(特别在沙盒测试环境更加不好),导致用户在购买成功后,收不到苹果的IAP支付成功通知,交易就会一直卡在那里,没有关闭掉,后面无论怎样支付都是提示
“您已购买此App内购买项目。此项目将免费恢复”。
解决问题
找到原因,就开始找补救方法了,补救方法就是需要把上一次未完成的订单结束掉,下一次就可以正常支付了.本插件就是在做这件事。
代码说明
在JS里面引入插件
var zdIospay = uni.requireNativePlugin('ZD-Iospay');
使用说明
var transactionDateresult=zdIospay.ZdIospayFunctionSync('对应苹果里的productid');
var transactionDate = eval("("+transactionDateresult+")");
调用时只需一个参数,就是你苹果里面自己配的消耗型内购项目的productid,程序会找到这个productid对应的订单,如果发现有未结束的订单,自动帮你结束掉。
返回值说明
当没有未结束的订单时,返回
{
"result": "0"
}
当查询到有未结束的订单,返回
{
"result": "0",
"transactionIdentifier": "1000000538781786",
"transactionReceipt": "苹果交易收据",
"transactionState": "1",
}
参数
值
result
只会返回0,代表插件调用成功
transactionIdentifier
苹果交易订单号
transactionReceipt
苹果交易数据,可以把数据发送到苹果的服务器进行验证真假
transactionState
"1"为交易成功,没有其它值,因为只有交易成功,又收不到苹果IAP通知才会卡住,失败订单会自动结束的.
注:
如果查询到有未结束的订单,程序会自动结束掉,并且返回苹果的订单数据,这个数据只会返回一次,下一次再调用因为订单已经结束掉了,所以不会查询到数据了。
这时如果你调自己的服务器失败了,苹果的订单数据就丢了,建议自己可以先缓存在本地,等你调用自己的服务器成功后,再删除掉。
插件的返回值是字符串类型,而不是JSON类型,如果需要变成JSON类型需要调用eval("("+transactionDateresult+")")转换成JSON类型才可以。
因为我只用到了消耗型的内购项目,其它类型的内购项目是否也可以通过本插件结束掉订单,我并不清楚.
测试
用户可以点击支付,然后填完密码点击确定,然后马上结束掉应用进程,等出现购买成功提示框后,再重新启动应用,调用本接口,看是否能查到未完成订单数据.
后记
我在测试的过程中发现有时第一次调用无法取得未结束订单的数据,需要第二次调用才能获取得到,上网搜了说是因为苹果服务器还没有把数据同步过来,所以调用无数据。坑真多,我的做法是支付前调用一下这个方法,
再进行支付,用户在进入页面和刷新页面的时候我也会调用一下这个方法,看有没有未结束的订单。
原生插件通用使用流程:
购买插件,选择该插件绑定的项目。
在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
开发完毕后正式云打包
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
插件简介
专门用来修复苹果IOS支付时出现"您已购买此App内购买项目。此项目将免费恢复"。
问题描述
首先在IOS平台里面创建“APP内购买项目”,选择的是“消耗型项目”,然后用uni-app官方的支付api进行支付,多支付几次,有时候就会出现提示“您已购买此App内购买项目。此项目将免费恢复”,
特别是在沙盒测试里面支付很大几率出现,我明明选的是消耗型项目,应该每一次都是新的支付,不存在恢复的情况,而且出现这种情况后,后面再怎样支付都是提示这个信息,有时候连删除掉应用,
重新再安装,也是一样的提示,这个对于需要消耗型项目支付的人来说问题太严重了,苹果支付完全没法用,苹果对虚拟产品又不给微信和支付宝进行支付,项目就一直卡在这上面了。
问题原因
上网搜了一圈,发现遇到的人不少,原因是苹果的服务器对大陆访问很慢(特别在沙盒测试环境更加不好),导致用户在购买成功后,收不到苹果的IAP支付成功通知,交易就会一直卡在那里,没有关闭掉,后面无论怎样支付都是提示
“您已购买此App内购买项目。此项目将免费恢复”。
解决问题
找到原因,就开始找补救方法了,补救方法就是需要把上一次未完成的订单结束掉,下一次就可以正常支付了.本插件就是在做这件事。
代码说明
在JS里面引入插件
var zdIospay = uni.requireNativePlugin('ZD-Iospay');
使用说明
var transactionDateresult=zdIospay.ZdIospayFunctionSync('对应苹果里的productid');
var transactionDate = eval("("+transactionDateresult+")");
调用时只需一个参数,就是你苹果里面自己配的消耗型内购项目的productid,程序会找到这个productid对应的订单,如果发现有未结束的订单,自动帮你结束掉。
返回值说明
当没有未结束的订单时,返回
{
"result": "0"
}
当查询到有未结束的订单,返回
{
"result": "0",
"transactionIdentifier": "1000000538781786",
"transactionReceipt": "苹果交易收据",
"transactionState": "1",
}
参数
值
result
只会返回0,代表插件调用成功
transactionIdentifier
苹果交易订单号
transactionReceipt
苹果交易数据,可以把数据发送到苹果的服务器进行验证真假
transactionState
"1"为交易成功,没有其它值,因为只有交易成功,又收不到苹果IAP通知才会卡住,失败订单会自动结束的.
注:
如果查询到有未结束的订单,程序会自动结束掉,并且返回苹果的订单数据,这个数据只会返回一次,下一次再调用因为订单已经结束掉了,所以不会查询到数据了。
这时如果你调自己的服务器失败了,苹果的订单数据就丢了,建议自己可以先缓存在本地,等你调用自己的服务器成功后,再删除掉。
插件的返回值是字符串类型,而不是JSON类型,如果需要变成JSON类型需要调用eval("("+transactionDateresult+")")转换成JSON类型才可以。
因为我只用到了消耗型的内购项目,其它类型的内购项目是否也可以通过本插件结束掉订单,我并不清楚.
运行环境
本插件只支持真机测试,选择本插件,打包自定义基座,然后在真机上运行.(不支持模拟器运行)
测试
用户可以点击支付,然后填完密码点击确定,然后马上结束掉应用进程,等出现购买成功提示框后,再重新启动应用,调用本接口,看是否能查到未完成订单数据.
后记
我在测试的过程中发现有时第一次调用无法取得未结束订单的数据,需要第二次调用才能获取得到,上网搜了说是因为苹果服务器还没有把数据同步过来,所以调用无数据。坑真多,我的做法是支付前调用一下这个方法,
再进行支付,用户在进入页面和刷新页面的时候我也会调用一下这个方法,看有没有未结束的订单。
ios 自己服务器 苹果支付_修复苹果IOS支付相关推荐
- java在线支付---09,10,11,12_在线支付_分析易宝支付网关的应答协议与处理代码,完成用于处理支付响应的Servlet的初步编写和调试,完成处理支付网关响应结果的Servlet,支付实现
09_在线支付_分析易宝支付网关的应答协议与处理代码 创梦综合技术qq交流群:CreDream:251572072 对支付结果返回的数据加密生成md5-hmac public static boole ...
- 苹果开发者_国外苹果企业开发者账户
国外苹果企业开发者账户 PG123hs6 国外苹果企业开发者账户 即便审批完毕后也不一定就代表着发布取得成功,很有可能还会继续挨打回再次递交,比较严重的会由于反复的发布被拒而造成苹果者封.科技是内测对 ...
- ios 企业签名证书购买_如何购买iOS企业证书进行app上架!!
名证书购买只能购买企业开发者帐号,只有企业开发者才能提供签名服务. 签名机制的意义 安全.苹果为了对App的环境有绝对的控制权,只有被苹果认可的应用才可以安装到手机上.可以避免应用被篡改,以及盗版应用 ...
- 小程序下单账号与支付账号不一致不让支付_微信小程序支付流程
微信支付之小程序支付 微信的支付方式有以下几种,不同的支付方式适用于不同的支付场景,而今天要给大家讲的就是 小程序支付 方式 说到支付功能就要涉及到金钱交易,必定是有比较严格的规范及流程,如要求小程序 ...
- ios 开发账号 退出协作_如何在iOS 10中的Notes上进行协作
ios 开发账号 退出协作 iOS' Notes app provides a convenient way to remember the great ideas you come up with ...
- python分苹果问题_分苹果问题的C++和Python实现
很好玩的一个问题.话说小明的苹果怎么可能一模一样? 显然这并不是重点.重点在于抽象这个问题的方法. 如果从M个苹果,拿出N个苹果,问有几种可能性,很明显这是典型的组合问题: 如果把M个苹果等分成N份. ...
- ios系统软件迁移到安卓_如何从ios迁移数据到安卓
2018-11-16 回答 从安卓设备转移到ios的应用叫move to ios 2015年9月17日,除ios 9外,苹果当地时间周三还发布了move to ios--帮助用户将应用由android ...
- 安卓和ios的ui设计区别_浅谈IOS和Android界面设计尺寸规范
刚开始接触UI的时候,碰到的最多的就是尺寸问题,什么画布要建多大,文字该用多大才合适,我要做几套界面才可以?什么七七八八的也着实让人有些头疼. 废话不多说,希望大家耐心看完后,不要再纠结于尺寸相关的东 ...
- ios保存gif到相册_如何在iOS中保存和下载GIF图片
对于大多数移动开发人员来说,他们经常处理图片,而png和jpg是开发人员经常遇到的图片类型. 但是,对于gif图片怎么存gif图,由于iOS系统不支持直接处理gif,因此处理起来会更加麻烦. 本文将讨 ...
- ios手机python编译器免费_适用与IOS手机的python编辑器,让你不限空间,地点都能玩转pyhton代码 !...
前言 现在越来越多人学习python,很多小伙伴都富有激情的,利用碎片化的时间都要学习,小编不得不佩服你们,大家都知道pyhton是简单易学的,但是光说不练,假把式,最好能编程并且运行,最好能有一款神 ...
最新文章
- Mybatis3.3.x技术内幕(十三):Mybatis之RowBounds分页原理
- win10 连接android,win10系统连接安卓手机usb没反应的解决方法
- mybatis批量更新报错XXXXX-Inline
- python——爬虫实现网页信息抓取
- linux进程管理 ps,Linux - 进程管理,ps与top
- oracle sql 匹配 一位,关于在SQL中查找匹配间隔:在SQL中查找匹配间隔-Oracle
- c语言找最长串指针改错,2013年计算机二级C语言上机试题及解析35
- 一、kafka安装下载与kafka初步应用
- pytorch中的反卷积的output_padding参数
- 数据治理之元数据管理实践
- 成年人夜生活的自救! 华熙LIVE·五棵松放大招
- background属性用法总结
- 思科模拟器叫什么_思科在过30年都证明了自己一直都是全球第一的网络公司
- 计算机图形学一:变换矩阵-Transformation Matrices
- php 加密算法+接口安全技术
- php 汉字、字母验证码 例子
- realme手机用什么蓝牙耳机好?2022公认音质最好的蓝牙耳机
- 计算机考证证件照没有露耳朵
- 西部世界:人的大部分痛苦来自控制一切的执念
- Flask前后端分离02