苹果游戏支付失败手机APP支付不了,同一款游戏别的区就可以,唯独哪一个区出现了微

app支付不了如何解决 App接入支付功能,如何选择合适的支付渠道? - 酷文网
当前位置:&&
app支付不了如何解决 App接入支付功能,如何选择合适的支付渠道?
来源:app支付不了如何解决
  那么它是如何将这些复杂的工作变得简洁的呢?
  3)接入各种支付渠道分别会产生甚麽费用?费率多少?
  五证:营业执照、组织机构代码证、税务登记证、开户许可证、法人身份证
  微信服务号适用:微信公众号支付、银联手机支付、支付宝手机网站支付、百度钱包、京东支付、易宝支付。
   1.你的手机上安装了一个山寨,或者非官方版本的支付宝软件。这种情况是有的。你下载安装了一个不是官方版本的软件,该软件不能正常使用。但注意了,一定要到官网,或者主流的应用中心去下载,不然后果真的很严重。
  阔别已久,小课堂再次开课,今天将和大家分享在开通各个支付渠道之前,你可能想要了解的一些信息。
  只要这些字段即可,其余的可有可无,都不影响,到了这点,你运行“统一下单”功能,就会返回prepay_id了,也就是支付ID。
  之前有一篇文章我在ShareSDK的社会化分享基础上,集成了IOS的微信和支付宝支付。点击链接查看IOS微信支付和支付宝支付
  支付宝:费率为0.6%(彩票、游戏、3C数码等部分特殊行业除外)
  手机App适用:微信App支付、支付宝移动支付、银联手机支付、ApplePay、百度钱包、京东支付、易宝支付以及应用内快捷支付。
  每个渠道每种产品的支付权限对于材料的要求都有所不同,具体所需材料以渠道官方要求为准。
  总结一下:用信用卡绑定银联支付可以直接绑定无需其他任务用储蓄卡绑定,需要开通银联在线支付功能,(尤其是交行,我的就是),然后再绑定。最好备用两张卡,如果一旦出现bug不能正常绑定,换张卡应该是可以的。
  1)如何选择合适的支付渠道?
  一般来说,PC网站申请会需要提交企业五证及网站ICP备案号;移动应用申请除这两项外还需要提供 App信息(应用内快捷支付需要同时提供公司运营状况)。除此之外,支付宝线下扫码支付需额外提供公司实景照片。
  线下实体店商家适用:微信公众号支付(扫码形式)、支付宝扫码支付。
  手机网页适用:支付宝手机网站支付、银联手机支付、百度钱包、京东支付、易宝支付。
  微信支付:实物类0.6%,虚拟类2%(微信费率针对销售产品的类型进行了区分,详情可在腾讯官网查看)
  每个支付渠道针对不同类型的产品,都开放了不同的支付功能(例如:微信支付针对App和微信公众号就是不同的支付接口)。所以,你需要根据自己的产品类型和支付场景选择合适的渠道。
  根据你的产品形态,确定了需要接入的支付渠道后,就可以对申请过程进行一个整体的评估了。
  2)申请过程中通常需要甚麽材料?
  更新后便可以支持ApplePay的app有:京东商城,网易考拉海淘,微博支付。
  对支付领域一无所知,对产品接入支付功能一筹莫展的时候,你会有大量疑问:各种支付渠道申请费用多少?申请周期多久?需要提交哪些资料?费率几何?如何结算?是否可以开具发票?
  「Ping++小课堂」如何管理你App收到的每一笔钱?
  下面以Ping++现已集成的支付渠道为例,不管你的产品是App还是Html5页面,相信都能适用。
  PC网站适用:微信公众号支付、支付宝扫码支付、支付宝即时到账支付、银联网关支付、银联企业网银支付。
  Ping++曾推出过两篇「Ping++小课堂」系列文章,分别讲述了如何在Ping++平台成功申请并开通支付渠道和利用Dashboard管理交易数据的操作。点如下蓝字可回顾往期内容:
  各渠道接入费由渠道直接收取,费率在资金清算时自动扣取,具体收费标准以渠道官方要求为准。微信支付会收取每年300元的实名认证费;银联的手机支付和网关支付会一次性收取3000元的接入费,企业网银支付的接入费则为20000元;应用内快捷支付因商户行业类型差异,接入费在3000元至50000元间不等,境外卡还需缴纳日交易额3-5倍的保证金。
  解决以上这些问题之前,首先要厘清的是:你的产品到底适用哪种支付方式?21242人阅读
本文会给大家详细介绍iOS内购,这是本人16年5月底的开发过程,希望对看完此篇文章的人有所帮助。
本文基于XcodeVersion 7.3 (7D175)版本,手机是iPhone 6,9.3系统。
部分地方直接摘自网络,基本上是我的逻辑,省时省心省力。
一. 创建测试App
首先你需要登录 App的ItunesConnection,你会看到如下界面
简单的介绍一下这几个选项
1.我的App主要用于管理自己的App应用,例如编辑资料,上架,下架等。
2.销售和趋势主要是来查看App在各个平台的下载量,收入等方面数据,里面有曲线图等图文结合的方式给我们参考。
3.付款和财务报告显示的是你的收入以及付款等相关信息。
4.iAd主要是跟广告有关,开发者可以登录到Workbench,通过iAd对应用的广告进行控制。
5.用户和职能用于生成相应账号,例如苹果沙河测试账号。
6.协议,税务和银行业务则是你银行相关账户的信息设置。
在这里我们选择第一个选项,我的App, 然后点击左上角的加号,新建一个用来测试用的App。
点新建 App,会出现新建窗口;
在这里有几个需要填写的地方,名称自己取,平台IOS,语言选择了简体中文,套装ID也就是你的Bundle Identifier,需要你在 申请BundleID,SKU可以理解为用户看一看到的唯一标示,会体现在你的app的App Store的链接中。
二.添加内购
App创建好之后,我们打开创建的App,在左上角选择功能,会看到左侧的App 内购买项目。我们点击右下角的加号,为App添加内购项目。
之后我们会看到类型的选项,如下图
官方的注释写的很清楚了,只在这里简单的说下前两种:
- 消耗型项目 就像你玩游戏需要买金币,买钻石等,只要花钱就可以无限次的购买
- 非消耗型项目 就像你在App Store购买App,买了一次之后就不用再买第二次,你拥有永久使用权。
在我们的app中,是充值会员,所以选择的是第一种,可以无限次购买。
这里有几个选项,需要填写商品名称,产品ID以及价格等级,简单说明一下
1. 商品名称根据你的消费道具的实际意义来说明,比如“100颗宝石”,“100金币”等。
2. 产品ID是比较重要的,由项目自定义,只要唯一即可,因为测试,我在这里随便填写的123,在实际应用中,一定要认真填写。
3. 价格等级的话“查看价格表”中有对应的说明,可以对照着表中每个国家的货币价格与等级来选择
接下来是语言选择,和上传快照如下图
点击添加语言,填写名称和描述,这里我们依然选择简体中文,如下
审核备注,根据实际情况填写,可以不填。而下面的屏幕快照,则是商品图片,以像素为单位,最低尺寸为321,390,尺寸需求如下图,上传即可。
到这里为止, 我们的内购项目则添加完成。接下来则是测试阶段了。
三.申请沙盒测试账号(用来测试购买项目)
这个账号,是利用苹果的沙盒测试环境来模拟AppStore的购买流程,你肯定不会想要用真实RMB去购买测试吧?
首先我们回到iTunes Connect中,在这里我们选择用户和职能。
然后在上面的第三个选项沙箱技术测试员中点击加号,添加测试员。
在信息填写页面只简单说两句。
所有信息都可以随意填写,不用管是否真实。
App Store地区选择,一定要选对,它对应的是你创建的App的地区, 你App是中国的话, 在这里我们依然选择中国。
此账号只能用来测试,不要在正式的appstore上使用
填写完毕,点击保存后,我们则生成一个测试账号,当然这个账号是可以随时删除和添加的。
之后终于到了写代码的时候了,点开你的Xcode创建你的项目!
大部分代码都可以在.m文件中实现。
#import "ViewController.h"
#import &StoreKit/StoreKit.h&
#import "SVProgressHUD.h"
@interface ViewController ()&SKPaymentTransactionObserver,SKProductsRequestDelegate&
@property (nonatomic,copy) NSString *currentProId;
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(100, 100, 100, 100);
button.backgroundColor = [UIColor greenColor];
[button setTitle:@"6元" forState:UIControlStateNormal];
[button addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:button];
- (void)btnClick:(UIButton *)button
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
_currentProId = @"123";
if([SKPaymentQueue canMakePayments]){
[self requestProductData:product];
NSLog(@"不允许程序内付费");
- (void)requestProductData:(NSString *)type{
NSLog(@"-------------请求对应的产品信息----------------");
[SVProgressHUD showWithStatus:nil maskType:SVProgressHUDMaskTypeBlack];
NSArray *product = [[NSArray alloc] initWithObjects:type,nil];
NSSet *nsset = [NSSet setWithArray:product];
SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:nsset];
request.delegate = self;
[request start];
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
NSLog(@"--------------收到产品反馈消息---------------------");
NSArray *product = response.products;
if([product count] == 0){
[SVProgressHUD dismiss];
NSLog(@"--------------没有商品------------------");
NSLog(@"productID:%@", response.invalidProductIdentifiers);
NSLog(@"产品付费数量:%lu",(unsigned long)[product count]);
SKProduct *p = nil;
for (SKProduct *pro in product) {
NSLog(@"%@", [pro description]);
NSLog(@"%@", [pro localizedTitle]);
NSLog(@"%@", [pro localizedDescription]);
NSLog(@"%@", [pro price]);
NSLog(@"%@", [pro productIdentifier]);
if([pro.productIdentifier isEqualToString:_currentProId]){
SKPayment *payment = [SKPayment paymentWithProduct:p];
NSLog(@"发送购买请求");
[[SKPaymentQueue defaultQueue] addPayment:payment];
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error{
[SVProgressHUD showErrorWithStatus:@"支付失败"];
NSLog(@"------------------错误-----------------:%@", error);
- (void)requestDidFinish:(SKRequest *)request{
[SVProgressHUD dismiss];
NSLog(@"------------反馈信息结束-----------------");
#define SANDBOX @"https://sandbox./verifyReceipt"
#define AppStore @"https://buy./verifyReceipt"
-(void)verifyPurchaseWithPaymentTransaction{
NSURL *receiptUrl=[[NSBundle mainBundle] appStoreReceiptURL];
NSData *receiptData=[NSData dataWithContentsOfURL:receiptUrl];
NSString *receiptString=[receiptData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
NSString *bodyString = [NSString stringWithFormat:@"{\"receipt-data\" : \"%@\"}", receiptString];
NSData *bodyData = [bodyString dataUsingEncoding:NSUTF8StringEncoding];
NSURL *url=[NSURL URLWithString:SANDBOX];
NSMutableURLRequest *requestM=[NSMutableURLRequest requestWithURL:url];
requestM.HTTPBody=bodyD
requestM.HTTPMethod=@"POST";
NSError *error=nil;
NSData *responseData=[NSURLConnection sendSynchronousRequest:requestM returningResponse:nil error:&error];
if (error) {
NSLog(@"验证购买过程中发生错误,错误信息:%@",error.localizedDescription);
NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@",dic);
if([dic[@"status"] intValue]==0){
NSLog(@"购买成功!");
NSDictionary *dicReceipt= dic[@"receipt"];
NSDictionary *dicInApp=[dicReceipt[@"in_app"] firstObject];
NSString *productIdentifier= dicInApp[@"product_id"];
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
if ([productIdentifier isEqualToString:@"123"]) {
int purchasedCount=[defaults integerForKey:productIdentifier];
[[NSUserDefaults standardUserDefaults] setInteger:(purchasedCount+1) forKey:productIdentifier];
[defaults setBool:YES forKey:productIdentifier];
NSLog(@"购买失败,未通过验证!");
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transaction{
for(SKPaymentTransaction *tran in transaction){
switch (tran.transactionState) {
case SKPaymentTransactionStatePurchased:{
NSLog(@"交易完成");
[self verifyPurchaseWithPaymentTransaction];
[[SKPaymentQueue defaultQueue] finishTransaction:tran];
case SKPaymentTransactionStatePurchasing:
NSLog(@"商品添加进列表");
case SKPaymentTransactionStateRestored:{
NSLog(@"已经购买过商品");
[[SKPaymentQueue defaultQueue] finishTransaction:tran];
case SKPaymentTransactionStateFailed:{
NSLog(@"交易失败");
[[SKPaymentQueue defaultQueue] finishTransaction:tran];
[SVProgressHUD showErrorWithStatus:@"购买失败"];
- (void)completeTransaction:(SKPaymentTransaction *)transaction{
NSLog(@"交易结束");
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
- (void)dealloc{
[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
在这里需要注意几点,
1. 代码中的_currentProId所填写的是你的购买项目的的ID,这个和第二步创建的内购的productID要一致;本例中是 123。
2. 在监听购买结果后,一定要调用[[SKPaymentQueue defaultQueue] finishTransaction:tran];来允许你从支付队列中移除交易。
3. 沙盒环境测试appStore内购流程的时候,请使用没越狱的设备。
4. 请务必使用真机来测试,一切以真机为准。
5. 项目的Bundle identifier需要与您申请AppID时填写的bundleID一致,不然会无法请求到商品信息。
6. 真机测试的时候,一定要退出原来的账号,才能用沙盒测试账号
7. 二次验证,请注意区分宏, 测试用沙盒验证,App Store审核的时候也使用的是沙盒购买,所以验证购买凭证的时候需要判断返回Status Code决定是否去沙盒进行二次验证,为了线上用户的使用,验证的顺序肯定是先验证正式环境,此时若返回值为21007,就需要去沙盒二次验证,因为此购买的是在沙盒进行的。
附:苹果支付错误目录
Status Code
Description
The App Store could not read the JSON object you provided.
The data in the receipt-data property was malformed or missing.
The receipt could not be authenticated.
The shared secret you provided does not match the shared secret on file for your account.Only returned for iOS 6 style transaction receipts for auto-renewable subscriptions.
The receipt server is not currently available.
This receipt is valid but the subscription has expired. When this status code is returned to your server, the receipt data is also decoded and returned as part of the response.Only returned for iOS 6 style transaction receipts for auto-renewable subscriptions.
This receipt is from the test environment, but it was sent to the production environment for verification. Send it to the test environment instead.
This receipt is from the production environment, but it was sent to the test environment for verification. Send it to the production environment instead.
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:27385次
排名:千里之外
原创:13篇
(1)(3)(1)(1)(1)(2)(3)(1)(1)(1)(1)支付宝又出新功能,也许不久之后我们只需要支付宝这一个APP
支付宝算是我们的国民APP,基本上每个人的手机里都安装了。支付宝更新很频繁,每次更新都会加入一些新功能,这些功能都是和我们生活息息相关的,极大的便利了我们的生活。我们看看这次支付宝又更新了哪些内容:1、查高考录取通知书支付宝和EMS合作,推出了高考录取通知书查询功能,准大学生们打开支付宝“城市服务”,点击“高考通知书查询”,输入准考证号或手机号就能查到物流状态。2、提取公积金广州上线全国首个支付宝提取公积金服务,点击支付宝“城市服务”,选择"公积金业务办理",输入相应的身份账户信息,写上想提取的金额,然后就等着公积金打进指定银行卡,来到你身边你身边~使用该功能前,需要先带房产证、贷款合同、契税证明等材料到柜台完成注册登记哦。3、查疫苗接种信息爸爸妈妈们打开支付宝,点击“城市服务”-“疫苗接种”,就可以为宝宝查疫苗接种信息了。未来我们还会接入接种提醒、预约、支付等功能,方便粑粑麻麻们提前给宝宝准备疫苗接种。现在,“疫苗接种”功能已经覆盖了广州、深圳、重庆、天津等75个城市。4、双击手机Home键就能付款vivo也加入“扫码秒付”,使用vivo新推出的X7/X7Plus这两个型号的用户,将来只需把”快捷启动“设置为”支付宝“,双击Home键,就能用指纹解锁手机的同时完成支付宝验证,快速调出支付宝付款码,一秒内完成付款。也许再过不久,支付宝会拥有所有的我们所需要的功能,那个时候,我们只需要一个支付宝一个手机APP就可以了,那么,你会卸载微信吗?
Ctrl+D&将本页面保存为书签,全面了解最新资讯,方便快捷。欢迎光临李浩律师的网络办公室
欢迎光临李浩律师的网络办公室
咨询热线:
找法网地区特邀律师
声明:为了保护当事人的隐私,找法网一对一咨询处于保密状态,该信息只有咨询者和被咨询的律师才能查看
如果您也发生了“在么,李律师,我在苹果手...”的问题,我们特别为您提供以下两种服务:
一对一在线免费咨询李浩律师 
不用注册,快速公开免费咨询万名律师
李浩律师解答的公开咨询
12-06-0712-06-0612-06-0612-06-0612-06-0512-06-05
相关的公开法律咨询
地区:河南 许昌
(咨询律师请说明来自找法网)
真:执业证号:61266执业机构:河南天时达律师事务所办公电话:
匿名评论:
匿名评论:
匿名评论:
匿名评论:
匿名评论:
匿名评论:
欢迎光临李浩律师的个人网上工作室!您有问题可以留言咨询或者打电话()直接与我沟通。对于您提出的问题我会及时的给您解答。请您在问题解决的同时把我推荐给您身边需要帮助的朋友,谢谢!
技术支持: 版权所有: 
律师执业证书号码:61266
电话: 手机: 您是该网站第114909位访客
总站网址: EMAIL:
技术/客服:TEL:400-678-6088 传真:020- QQ: ICP备案号:B2-
免责声明:以上所展示的会员介绍、成功案例等信息,由会员自行提供,内容的真实性、准确性和合法性由其本人负责。找法网对此不承担任何责任。
友情提醒:为规避您的风险,建议您在聘请律师前务必到其所在律所或通过当地律师协会、司法局核实律师身份信息。
快速关注律师

我要回帖

更多关于 苹果一款很污的游戏 的文章

 

随机推荐