有谁appapk集成到自己的app过Stripe Payment么

苹果官方关于In-App Purchase文档
免费下载+应用内购买(In-App Purchase)”已成为移动应用领域的主要盈利模式。“先进门后收费”的模式给移动应用开发商带来了巨大利润。但在具体执行In-App Purchase的过程中,开发者遇到的各种问题总会让人头疼不已。本次IAP专题除了包含基础知识外,还选取了开发者经常遇到的一些问题,希望对您有所帮助。
社区总结类文章:
社区问答:
开发者关心的那些事
产品标识符(Product Identifiers)是一串字符串,它用来识别你在应用内贩卖的每件商品。App Store用产品标识符来检索产品信息,标识符只能包含大小写字母(A-Z)、数字(0-9)、下划线(-)、以及圆点(.)。你可以任意排列这些元素,但我们建议你创建标识符时使用反向域名,比如 panyname.application.productid
备注:产品标识符和Apple ID以及Bundle ID没有关系,它们看起来可能比较像Bundle ID,但是两者是不一样的。所以,在代码里你不能用Apple ID或者Bundle ID代替产品标识符。
IAP表单(TheIn-App Purchases form)是用来生成IAP产品的,它包含了产品ID的字段,这个字段必须要填到表里。这个字段可以为你的产品指定产品标识符。你可以按下面的步骤来创建产品标识符:
1.登入iTunes Connect, 点击主页面上的Manage Your Applications模块。
2.进入Manage Your Apps 页面,你可以看到你所有的应用列表。选择你想要创建IAP的产品的app,在下个页面中点击Manage In-App Purchases按键,然后在点击创建。
3.选择IAP产品的类型。iTunes Connect会带你进入IAP表单,在这个表单里有“保存”按键。完整填写Product ID以及表单里的其他字段。
注意事项:产品标识符一旦创建无法修改,此外,如果应用审核没有通过,这个产品标识符也无法再次使用。
首先创建SKProductsRequest,然后把产品标识符列表传至initWithProductIdentifiers 来读取产品信息。
执行In-App Purchase的app的用户界面必须有App Store允许的可供购买的产品。在你决定在用户界面展示用于购买的产品之前,你的app必须先向App Store发送一个产品请求。
[SKPayment paymentWithProductIdentifier:PRODUCT_ID]
[SKPayment paymentWithProduct:YOUR_SKPRODUCT_OBJECT]
苹果建议您使用 [SKPayment paymentWithProduct:YOUR_SKPRODUCT_OBJECT]
使用这个方法可以确保你一直处于有效的产品支付请求状态,同时也确保用户可以购买你的产品。
所以,务必只展现App Store返回的产品信息。了解更多有关于app内产品展现信息,请查看In-App Purchase 编程指南的 部分。
In-App Purchase共有3中类型,Consumable:一次性购买,最简单的类型,不用保存历史记录。
Nonconsumable:每个产品,用户只买一次,此后就可以在自己的所有设备上看到该产品。 Subscriptions:订阅模式允许多次购买末一个产品,但是购买后,用户可以在自己的所有设备上看到该产品。
不必。以 Camera+ 为例,Menu 里最下方的选项 Restore purchases 即可帮你解锁已经购买的滤镜。任何实现了 IAP 功能的 App 基本都会提供这一选项,或者在第二次购买时提示已购。
消耗类(如游戏金币)需要购买。 功能类不需要购买,有些应用提供“Restore purchases”,没有的可以再次尝试购买,会提示已付费。
你可以设置为0.99美元
可以的,在应用程序的信息中。
In-App Purchase 分好几种,最常见的是 Non-Consumable,就是只需要用户购买一次的。如果是这种类型的,再购买一次同一个商品就能够恢复了,不会收取额外费用。如果 app 做得好的话,应该提供一个 Restore 功能,以专门恢复以前购买过的 Non-Consumable 的商品。
请参阅的注册IAP部分
以下是可能导致“Manage In-App Purchase”按键无法使用的原因
a.不是iTunes Connnect的管理员(Admin)或开发者(Technical)账号。
b.没有同意最新的iOS或Mac开发者许可协议。
c.最新的付费应用协议(Paid Applications contract)没有生效
没有这个必要。
重要事项:除非你的应用已经做好了接受苹果审核的准备,否则请不要上传Development Binary至iTunes Connect。如果iTunes Connect里的二进制编码不完整,二进制编码被拒的可能性很大。一旦二进制编码通过审核,就可以测试In-App Purchase功能了。
“您的账号信息已变”错误出现的原因是在测试IAP的时候你使用的是设备的测试账号。解决方法是退出账号,然后在iTunes Connect创建一个新的测试账号,使用新的测试账号来测试IAP。
有可能是以下原因:
a.没有填完财政需求表(请参阅本文档的“合同、税务以及银行信息”部分)
b.没有使用正确的App ID。
c.没有使用正确的与App ID紧密关联的Provisioning Profile。
d.代码中没有使用正确的产品标识符。更多产品标识符的信息请参阅技术问答,。
e.你没有清除iTunes Connect中促销的IAP产品。
f.也许你已经修改了你的产品,但它没有在App Store的服务器中生效。
g.苹果拒绝了你最新向iTunes Connect提交的二进制码。
你的应用没有调用SKPaymentQueue 's finishTransaction。调用finishTransaction:允许你从支付队列中移除交易。
这个信息是个提醒,不是错误。这表明你试图购买一个你已经购买了的非消耗性产品。购买一个非消耗性的产品时不会被扣费。
可能由于以下原因:
你没有任何先前购买过的非消耗类产品。
你试图恢复的订阅产品或者非消耗类产品是不可恢复的类型。
restoreCompletedTransactions: 方法只能恢复非消耗类产品。
注意: 在没有可恢复产品的情况下,Store Kit不会调用paymentQueue:updatedTransactions:方法。
在以下两种情况下你可以恢复自动更新的订阅产品和非消耗类产品:
a.在客户其他设备上安装
b.在删除了关联应用的其他设备上重新安装
出现这个错误的原因是在确认购买信息时你使用的是iTunes用户账号。解决的办法是退出账号,然后使用你的IAP测试账号。
可能有以下几个原因:
a.在你的iOS app里,你没有使用64位编码对回单数据进行编码,
b.没有有效的回单,你的回单大概使用了等号隔开键和值,用分号隔开了关键字。
c.有效的回单使用冒号来隔开键和值,用逗号隔开关键字,
下表是有效的回单样本
"signature" : "...",
"purchase-info" : "...",
"pod" : "...",
"signing-status" : "..."
不管更新后的app是否正确执行地了In-App Purchase,如果你要测试的话就按照以下步骤:
通过Ad Hoc Distribution方式安装原始app。
通过Ad Hoc Distribution方式安装更新后的app来验证它是否完全覆盖了原始的app。
试着从更新后的app中执行In-App Purchase。
在sandbox环境测试app时使用 sandbox URL ,当应用处于审核状态时也可以使用这个URL:https://sandbox./verifyReceipt
使用产品 URL
一旦你的app上架App Store,你就要用产品URL:
http://buy./verifyReceipt
第一次一般使用产品的URL核实收据。如果你收到一个21007状态代码,那么接下来要用sandbox URL。当app处于测试状态或者在sandbox环境下进行检测,或者上架App Store,你可以使用这种方法,从而避免在URL之间进行切换,
注明:21007 状态码表明receipt是一个sandbox receipt。
&CocoaChina
京公网安备89申请以及集成 Stripe 的 Alipay 支付方案 - 推酷
申请以及集成 Stripe 的 Alipay 支付方案
最近在一个项目需要支持人民币支付,并且客户要求希望能够收完款后的结算是用美元,所以就想到了去年 Stripe 宣布已经跟支付宝达成合作意向,所以经过一番咨询跟集成,终于把 Stripe 集成进来,并且启用了支付宝收款。这篇文章介绍功能申请以及集成的完整过程。
,电子邮箱跟注册的 Stripe 账号保持一致;
联系 Stripe 员工
发送邮件到
,声明你需要在你的 Stripe 账号中启用 Alipay 的支付功能,并且提供你的 Stripe 账号。然后,等待回复就是,一般当天都能收到回复的。
0. 时序图(可结合后边代码一起理解)
1. 引入 stripe.js 以及初始化脚本
假设支付页面上有个开始支付按钮,其 html 代码为:
&button id='pay'&支付&/button&
请在 html 代码里合适的地方(比如 &body& 标签的底部)加载 stripe.js:
&script src=&/checkout.js&&&/script&
在脚本中初始化 stripe.js,并且注册支付按钮的事件监听函数:
$(function(){
var stripeHandler = StripeCheckout.configure({
key: 'pk_test_NQymfZx013D0mKQjIbvkwWJt',
// 可以查看 /account/apikeys
image: 'https://placehold.it/200x200',
// 显示在支付对话框的图片,可自己指定
alipay: true,
// 启用支付宝支付
token: function(token){
// 用户填写完资料并且 Stripe 校验成功后的回调函数
// 此时应该提交 token.id 到后台,比如 /orders/1?stripeToken={token.id}
$('#pay').click(function(){
stripeHandler.open({
name: 'Business Name',
// 收款方或商家名称,比如 Beansmile
description: &商品描述内容&,
// 待支付商品的描述
amount: 50 * 100,
// 支付金额,单位是“分”
opened: function(){
// 支付对话框打开后的回调函数
// Do something
2. 通过 token 请求收款
服务器端是 Ruby on Rails 实现,所以在 Gemfile 中引入 Stripe 官方的 Ruby SDK(具体配置方法请自行查阅其 README):
# Stripe Ruby bindings
# /stripe/stripe-ruby
gem &stripe&, &~& 1.20.1&
然后在 Controller action 中添加处理逻辑:
# app/controllers/orders_controller.rb
class OrdersController & ApplicationController
# PUT /orders/:id
id: 订单的 id
stripeToken: 客户端完成支付流程,在脚本的回调函数中会得到 `token.id`,
将其上传到 `stripeToken` 参数,服务器端用此 token 请求收款
response = Stripe::Charge.create
amount: order.amount_in_cents,
currency: 'USD',
source: params[:stripeToken],
description: &订单描述&
order.update_attribute :state, :paid
redirect_to order
rescue Stripe::InvalidRequestError =& error
flash[:error] = &由于#{error.message},支付失败!&
redirect_to order
3. 效果预览
关于 Stripe 的沙盒机制
Stripe 为每个账号都提供了
,一组 key 用于用于 live 环境,另一组是 test 环境,后者即是沙盒环境,而针对支付宝的沙盒,可用任意合法的邮箱账号进行测试,但验证码是固定的 123456,而身份证后 6 位是固定的 12345;
在功能申请过程中,一定要记得完成步骤3——联系 Stripe 开通 Alipay 支付功能。否则,会在支付的时候出现错误,错误信息示例为: There is no token with ID atok_15lBGCANIkwXjD1tv3z5ug3e atok_xxxxxxxxxxxxxxxxxxxxxxxx
实际开发中,请结合考虑用 stripe 提供的
处理支付状态变迁;
此支付机制中,付款人可用人民币支付,但是 Stripe 会用美元跟商家(收款方)进行结算;
我总结了工作中集成过的其他几款支付网关,横向对比了各家的异同点,有兴趣的请戳:
,这部分的文档虽然没有提交 Alipay, 但是针对 Alipay 的集成,依旧适用。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 apk集成到自己的app 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信