• 大小: 3KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: Java
  • 标签: Java  iOS支付  

资源简介

主要是Java对接iOS内购,回调验证相关的方法, 真机测试的时候,一定要退出原来的账号,才能用沙盒测试账号,二次验证,请注意区分宏, 测试用沙盒验证,App Store审核的时候也使用的是沙盒购买,所以验证购买凭证的时候需要判断返回Status Code决定是否去沙盒进行二次验证,为了线上用户的使用,验证的顺序肯定是先验证正式环境,此时若返回值为21007,就需要去沙盒二次验证,因为此购买的是在沙盒进行的。下载需谨慎

资源截图

代码片段和文件信息

package com.ylwq.projecte.common.util;

import java.io.BufferedOutputStream;    
import java.io.BufferedReader;    
import java.io.InputStream;    
import java.io.InputStreamReader;    
import java.net.URL;    
import java.security.cert.CertificateException;    
import java.security.cert.X509Certificate;     
import java.util.Locale;    
    
import javax.net.ssl.HostnameVerifier;    
import javax.net.ssl.HttpsURLConnection;    
import javax.net.ssl.SSLContext;    
import javax.net.ssl.SSLSession;    
import javax.net.ssl.TrustManager;    
import javax.net.ssl.X509TrustManager;    
    
/**  
 * 苹果IAP内购验证工具类 
 * @ClassName: IosVerify  
 * @Description:Apple Pay  
 */    
public class IosVerifyUtil {    
    
    private static class TrustAnyTrustManager implements X509TrustManager {    
    
        public void checkClientTrusted(X509Certificate[] chain String authType) throws CertificateException {    
        }    
    
        public void checkServerTrusted(X509Certificate[] chain String authType) throws CertificateException {    
        }    
    
        public X509Certificate[] getAcceptedIssuers() {    
            return new X509Certificate[] {};    
        }    
    }    
    
    private static class TrustAnyHostnameVerifier implements HostnameVerifier {    
        public boolean verify(String hostname SSLSession session) {    
            return true;    
        }    
    }    
    
    private static final String url_sandbox = “https://sandbox.itunes.apple.com/verifyReceipt“;    
    private static final String url_verify = “https://buy.itunes.apple.com/verifyReceipt“;    
    
    /**  
     * 苹果服务器验证  
     *   
     * @param receipt  
     *            账单  
     * @param i 
     * @url 要验证的地址  
     * @return null 或返回结果 沙盒 https://sandbox.itunes.apple.com/verifyReceipt  
     *   
     */    
    public static String buyAppVerify(String receipt int type) {    
        //环境判断 线上/开发环境用不同的请求链接    
     String url = ““;
       //String url = PayConfig.APPLEPAY_URL;    
        if(type==0){  
            url = url_sandbox; //沙盒测试  
        }else{  
            url = url_verify; //线上测试  
        } 
        try {    
            SSLContext sc = SSLContext.getInstance(“SSL“);    
            sc.init(null new TrustManager[] { new TrustAnyTrustManager() } new java.security.SecureRandom());    
            URL console = new URL(url);    
            HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();    
            conn.setSSLSocketFactory(sc.getSocketFactory());    
            conn.setHostnameVerifier(new TrustAnyHostnameVerifier());    
            conn.setRequestMethod(“POST“);    
            conn.setRequestProperty(“content-type“ “text/json“);    
            conn.setRequestProperty(“Proxy-Connection“ “Keep-Alive“);    
            conn.setDoInput(true);    
            conn.setDoOutput(true);    
            BufferedOutputStream hurlBufOus = new BufferedOutputStream(conn.getOutputStream());    
    
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4367  2020-02-19 09:39  iOS内购\IosVerifyUtil.java
     文件        3316  2020-02-19 09:39  iOS内购\ios内购java服务器验证.txt
     目录           0  2020-02-19 09:39  iOS内购\

评论

共有 条评论