小程序
小游戏
企业微信
微信支付
扫描小程序码分享
1、已申请小程序
2、已申请商户号
3、小程序以绑定商户号
4、商户号已开通JSAPI支付、Native支付、付款码支付
在这种情况下,还是报该商户号权限未开通,到底还要怎样才能开通?
这是官方的例子,其中出现了两个商户号 merchantId和mchid 这两个是否指的同一个微信商户的id,如果不是这两个参数指的是什么 从哪里获取?
另外notifyUrl是什么 商品的地址么? 有什么要求?
刚接触微信支付,还望有经验的各位前辈可以给予指导,谢谢
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
请求的什么接口?具体的报错贴出来
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
/** 商户号 */ @Value("${webCart.merchantId}") private String merchantId ; /** 商户API私钥路径 */ @Value("${webCart.privateKeyPath}") private String privateKeyPath ; /** 商户证书序列号 */ @Value("${webCart.merchantSerialNumber}") private String merchantSerialNumber ; /** 商户APIV3密钥 */ @Value("${webCart.apiV3key}") private String apiV3key; private static Config config; public PrepayResponse main() { // 构建service NativePayService service = new NativePayService.Builder().config(config).build(); // request.setXxx(val)设置所需参数,具体参数可见Request定义 PrepayRequest request = new PrepayRequest(); Amount amount = new Amount(); amount.setTotal(100); request.setAmount(amount); request.setAppid("wxxxxxxxxxxxxxxxc"); request.setMchid("16xxxxxx93"); request.setDescription("测试商品标题"); request.setNotifyUrl("https://notify_url"); request.setOutTradeNo("out_trade_no_001"); // 调用下单方法,得到应答 PrepayResponse response = service.prepay(request); // 使用微信扫描 code_url 对应的二维码,即可体验Native支付 System.out.println(response.getCodeUrl()); return response; } @PostConstruct private void init(){ // 使用自动更新平台证书的RSA配置 // 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错 config = new RSAAutoCertificateConfig.Builder() .merchantId(merchantId) .privateKeyFromPath(PathUtil.getPath(privateKeyPath)) .merchantSerialNumber(merchantSerialNumber) .apiV3Key(apiV3key) .build(); } //修改后 // 构建service JsapiService service = new JsapiService.Builder().config(config).build(); // request.setXxx(val)设置所需参数,具体参数可见Request定义 PrepayRequest request = new PrepayRequest(); Amount amount = new Amount(); amount.setTotal(100); Payer payer = new Payer(); payer.setOpenid("oKxxxxxxxx-xxxxxxxxxxx"); request.setAmount(amount); request.setAppid("wxxxxxxx71xxxxxx2c"); request.setMchid("1xxxxxxxxxx3"); request.setDescription("测试商品标题"); request.setNotifyUrl("https://notify_url"); request.setOutTradeNo("out_trade_no_001"); request.setPayer(payer); // 调用下单方法,得到应答 PrepayResponse response = service.prepay(request); // 使用微信扫描 code_url 对应的二维码,即可体验Native支付 /*System.out.println(response.getCodeUrl());*/ return response;
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
请求的什么接口?具体的报错贴出来
/** 商户号 */ @Value("${webCart.merchantId}") private String merchantId ; /** 商户API私钥路径 */ @Value("${webCart.privateKeyPath}") private String privateKeyPath ; /** 商户证书序列号 */ @Value("${webCart.merchantSerialNumber}") private String merchantSerialNumber ; /** 商户APIV3密钥 */ @Value("${webCart.apiV3key}") private String apiV3key; private static Config config; public PrepayResponse main() { // 构建service NativePayService service = new NativePayService.Builder().config(config).build(); // request.setXxx(val)设置所需参数,具体参数可见Request定义 PrepayRequest request = new PrepayRequest(); Amount amount = new Amount(); amount.setTotal(100); request.setAmount(amount); request.setAppid("wxxxxxxxxxxxxxxxc"); request.setMchid("16xxxxxx93"); request.setDescription("测试商品标题"); request.setNotifyUrl("https://notify_url"); request.setOutTradeNo("out_trade_no_001"); // 调用下单方法,得到应答 PrepayResponse response = service.prepay(request); // 使用微信扫描 code_url 对应的二维码,即可体验Native支付 System.out.println(response.getCodeUrl()); return response; } @PostConstruct private void init(){ // 使用自动更新平台证书的RSA配置 // 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错 config = new RSAAutoCertificateConfig.Builder() .merchantId(merchantId) .privateKeyFromPath(PathUtil.getPath(privateKeyPath)) .merchantSerialNumber(merchantSerialNumber) .apiV3Key(apiV3key) .build(); } //修改后 // 构建service JsapiService service = new JsapiService.Builder().config(config).build(); // request.setXxx(val)设置所需参数,具体参数可见Request定义 PrepayRequest request = new PrepayRequest(); Amount amount = new Amount(); amount.setTotal(100); Payer payer = new Payer(); payer.setOpenid("oKxxxxxxxx-xxxxxxxxxxx"); request.setAmount(amount); request.setAppid("wxxxxxxx71xxxxxx2c"); request.setMchid("1xxxxxxxxxx3"); request.setDescription("测试商品标题"); request.setNotifyUrl("https://notify_url"); request.setOutTradeNo("out_trade_no_001"); request.setPayer(payer); // 调用下单方法,得到应答 PrepayResponse response = service.prepay(request); // 使用微信扫描 code_url 对应的二维码,即可体验Native支付 /*System.out.println(response.getCodeUrl());*/ return response;
// 调用下单方法,得到应答
PrepayResponse response = service.prepay(request)
这个方法的service 决定了 是使用什么支付,随即改成了
// 构建service
JsapiService service = new JsapiService.Builder().config(config).build();
通过JsApi的方式支付,再根据Jsapi的官方文档https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_1.shtml
添加了用户唯一表示 openid ,随即请求成功