import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import javax.transaction.SystemException;
import com.alibaba.fastjson.JSONObject;
public class ApplePayments {
private final static String _sandboxUriStr = "https://sandbox.itunes.apple.com/verifyReceipt";
//private final static String _productionUriStr = "https://buy.itunes.apple.com/verifyReceipt";
/**
*
* @param receipt 明码
* @throws SystemException
*/
public static void processPayment(final String receipt)
throws SystemException {
@SuppressWarnings("restriction")
final sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
final String receiptData = encoder.encode(receipt.getBytes());
final JSONObject object=new JSONObject();
object.put("receipt-data", receiptData);
final String jsonData=object.toJSONString();
try {
final URL url = new URL(_sandboxUriStr);
final HttpURLConnection conn = (HttpsURLConnection) url
.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Accept", "application/json");
final OutputStreamWriter wr = new OutputStreamWriter(
conn.getOutputStream());
wr.write(jsonData);
wr.flush();
// Get the response
final BufferedReader rd = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
wr.close();
rd.close();
} catch (IOException e) {
}
}
}
相关推荐
6. **验证购买**:为了防止欺诈,需要在服务器端验证购买收据。可以使用Apple的验证API,将本地的收据数据发送到指定的URL进行验证。 7. **完成交易**:验证通过后,完成交易,更新应用状态,并通知用户。 8. **...
购买完成后,为了防止欺诈,必须验证服务器端的收据。使用Apple的验证服务,将收据数据发送到指定的URL,并接收验证结果。只有在收据验证成功后,才提供购买的商品或服务。 7. **本地存储和同步** 由于IAP购买...
在移动应用开发领域,尤其是iOS平台,内置购买(In-App Purchase, IAP)是开发者常用的盈利手段,允许用户在应用程序内部购买虚拟商品或服务。本篇文章将基于提供的"iPhone内置购买Demo"深入探讨如何实现一个完整的...
UNITY_EDITOR`这样的条件编译指令用于确保这些代码只在iOS平台上并且不在编辑器中运行,因为IAP功能只在实际设备上可用。 总的来说,这个教程深入讲解了Unity3D中实现内购的步骤,包括C#与Objective-C的交互,以及...
在iOS应用开发中,内购买(In-App Purchase,IAP)是一种常见的商业模式,允许用户在应用程序内购买额外的功能、内容或服务。本教程将详细讲解如何使用Swift语言中的第三方库SwiftyStoreKit来轻松实现App内购买。...
2. **服务器模型(Server Model)**: 对于需要从远程服务器下载的内容或服务,开发者需要构建自己的服务器端逻辑来处理产品的交付。这种方式常用于订阅类商品或其他需要频繁更新的内容。 综上所述,StoreKit框架为iOS...
这部分通常由服务器端语言如Node.js、Python或Java实现,与iOS客户端通过API交互。 8. **缓存策略**:为了优化用户体验,直播应用往往需要实施缓存策略,比如预加载、离线观看等,这需要合理利用iOS的本地存储和...