Comprehensive Java SDK for integrating with WeChat Pay services including unified orders, refunds, enterprise payments, red packets, profit sharing, and marketing services
—
Configuration management, certificate handling, signature processing, and multi-merchant support for enterprise deployments.
Core configuration setup for WeChat Pay integration.
/**
* Set payment configuration
* @param config WeChat Pay configuration
*/
void setConfig(WxPayConfig config);
/**
* Get current configuration
* @return Current WeChat Pay configuration
*/
WxPayConfig getConfig();Usage Example:
// Create and configure WxPayConfig
WxPayConfig config = new WxPayConfig();
config.setAppId("your-app-id");
config.setMchId("your-merchant-id");
config.setMchKey("your-merchant-key");
config.setKeyPath("/path/to/cert.p12");
// API v3 configuration
config.setApiV3Key("your-api-v3-key");
config.setCertSerialNo("certificate-serial-number");
config.setPrivateKeyPath("/path/to/private-key.pem");
// Set configuration
wxPayService.setConfig(config);Manage multiple merchant configurations in a single application.
/**
* Add merchant configuration
* @param mchId Merchant ID
* @param wxPayConfig Merchant configuration
*/
void addConfig(String mchId, WxPayConfig wxPayConfig);
/**
* Remove merchant configuration
* @param mchId Merchant ID to remove
*/
void removeConfig(String mchId);
/**
* Switch to specific merchant
* @param mchId Target merchant ID
* @return true if switch successful
*/
boolean switchover(String mchId);
/**
* Switch to specific merchant with exception on failure
* @param mchId Target merchant ID
* @return Service instance for chaining
* @throws WxPayException if switch fails
*/
WxPayService switchoverTo(String mchId);Handle WeChat Pay certificates for secure communication.
/**
* Initialize V3 HTTP client with certificates
* @throws WxPayException if initialization fails
*/
void initV3HttpClient() throws WxPayException;
/**
* Get certificate serial number
* @return Certificate serial number
*/
String getCertSerialNo();Generate and verify signatures for API security.
/**
* Create signature for parameters
* @param params Parameter map
* @param signType Signature type
* @return Generated signature
* @throws WxPayException if signature generation fails
*/
String createSign(Map<String, String> params, SignType signType) throws WxPayException;
/**
* Verify signature of parameters
* @param params Parameter map with signature
* @return true if signature is valid
* @throws WxPayException if verification fails
*/
boolean checkSign(Map<String, String> params) throws WxPayException;class WxPayConfig {
// Basic configuration
String appId; // Application ID
String mchId; // Merchant ID
String mchKey; // Merchant key
String keyPath; // Certificate path (.p12)
// API v3 configuration
String apiV3Key; // API v3 key
String certSerialNo; // Certificate serial number
String privateKeyPath; // Private key path
String privateCertPath; // Private certificate path
// HTTP configuration
Integer httpConnectionTimeout; // Connection timeout
Integer httpTimeout; // Request timeout
WxPayHttpProxy httpProxy; // Proxy configuration
// Environment settings
boolean useSandbox; // Use sandbox environment
boolean autoReport; // Auto error reporting
// Methods
void setKeyContent(byte[] keyContent);
void setPrivateKeyContent(byte[] privateKeyContent);
void setSandbox(boolean sandbox);
}// Signature types
enum SignType {
MD5,
HMAC_SHA256
}
// Certificate utilities
class CertificateUtils {
static X509Certificate loadCertificate(String certPath);
static PrivateKey loadPrivateKey(String keyPath);
}Install with Tessl CLI
npx tessl i tessl/maven-com-github-binarywang--weixin-java-pay