## 微信v3 > #### 推荐使用v3接口,官方在v3接口实现未覆盖或gopay未开发的接口,还继续用v2接口,欢迎参与完善v3接口。 - 已实现API列表附录:[API 列表附录](https://github.com/go-pay/gopay/blob/main/doc/wechat_v3.md#%E9%99%84%E5%BD%95) - 微信官方文档:[商户平台文档](https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/index.shtml)、[服务商平台文档](https://pay.weixin.qq.com/wiki/doc/apiv3_partner/pages/index.shtml) - 通用规则:[通用规则](https://pay.weixin.qq.com/docs/merchant/development/interface-rules/introduction.html) - GoPay微信v2文档:[GoPay微信v2文档](https://github.com/go-pay/gopay/blob/main/doc/wechat_v2.md) (部分接口仅v2版本支持) --- ### 1、初始化微信v3客户端并做配置 > 注意:v3 版本接口持续增加中,不支持沙箱支付,测试请用1分钱测试法 > 具体API使用介绍,请参考 `gopay/wechat/v3/client_test.go` ```go import ( "github.com/go-pay/xlog" "github.com/go-pay/gopay/wechat/v3" ) // NewClientV3 初始化微信客户端 v3 // mchid:商户ID 或者服务商模式的 sp_mchid // serialNo:商户证书的证书序列号 // apiV3Key:apiV3Key,商户平台获取 // privateKey:私钥 apiclient_key.pem 读取后的内容 client, err = wechat.NewClientV3(MchId, SerialNo, APIv3Key, PrivateKey) if err != nil { xlog.Error(err) return } // 设置微信平台API证书和序列号(推荐开启自动验签,无需手动设置证书公钥等信息) //client.SetPlatformCert([]byte(""), "") // 启用自动同步返回验签,并定时更新微信平台API证书(开启自动验签时,无需单独设置微信平台API证书和序列号) err = client.AutoVerifySign() if err != nil { xlog.Error(err) return } // 自定义配置http请求接收返回结果body大小,默认 10MB client.SetBodySize() // 没有特殊需求,可忽略此配置 // 设置自定义RequestId生成方法,非必须 client.SetRequestIdFunc() // 打开Debug开关,输出日志,默认是关闭的 client.DebugSwitch = gopay.DebugOn ``` ### 2、API 方法调用及入参 > 具体参数请根据不同接口查看:[微信支付V3的API字典概览](https://pay.weixin.qq.com/wiki/doc/apiv3/apis/index.shtml) - JSAPI下单 示例 ```go import ( "github.com/go-pay/gopay" ) expire := time.Now().Add(10 * time.Minute).Format(time.RFC3339) // 初始化 BodyMap bm := make(gopay.BodyMap) bm.Set("sp_appid", "sp_appid"). Set("sp_mchid", "sp_mchid"). Set("sub_mchid", "sub_mchid"). Set("description", "测试Jsapi支付商品"). Set("out_trade_no", tradeNo). Set("time_expire", expire). Set("notify_url", "https://www.fmm.ink"). SetBodyMap("amount", func(bm gopay.BodyMap) { bm.Set("total", 1). Set("currency", "CNY") }). SetBodyMap("payer", func(bm gopay.BodyMap) { bm.Set("sp_openid", "asdas") }) wxRsp, err := client.V3TransactionJsapi(bm) if err != nil { xlog.Error(err) return } if wxRsp.Code == Success { xlog.Debugf("wxRsp: %#v", wxRsp.Response) return } xlog.Errorf("wxRsp:%s", wxRsp.Error) ``` ### 3、下单后,获取微信小程序支付、APP支付、JSAPI支付所需要的 pay sign > 小程序调起支付API:[小程序调起支付API](https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_4.shtml) > APP调起支付API:[APP调起支付API](https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_2_4.shtml) > JSAPI调起支付API:[JSAPI调起支付API](https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_4.shtml) ```go // 小程序 applet, err := client.PaySignOfApplet("appid", "prepayid") // app app, err := client.PaySignOfApp("appid", "prepayid") // jsapi jsapi, err := client.PaySignOfJSAPI("appid", "prepayid") ``` ### 4、同步请求返回验签Sign、异步通知参数解析+验签Sign+回执、敏感信息加/解密 > 异步通知请求参数需要先解析,解析出来的结构体或BodyMap再验签(此处需要注意,`http.Request.Body` 只能解析一次,如果需要解析前调试,请处理好Body复用问题) [Gin Web框架(推荐)](https://github.com/gin-gonic/gin) [Echo Web框架](https://github.com/labstack/echo) - ~~同步返回验签,手动验签~~(推荐开启自动验签,则无需手动验签操作) ```go import ( "github.com/go-pay/gopay/wechat/v3" "github.com/go-pay/xlog" ) wxRsp, err := client.V3TransactionJsapi(bm) if err != nil { xlog.Error(err) return } pkMap := client.WxPublicKeyMap() // wxPublicKey:微信平台证书公钥内容,通过 client.WxPublicKeyMap() 获取,然后根据 signInfo.HeaderSerial 获取相应的公钥 err = wechat.V3VerifySignByPK(wxRsp.SignInfo.HeaderTimestamp, wxRsp.SignInfo.HeaderNonce, wxRsp.SignInfo.SignBody, wxRsp.SignInfo.HeaderSignature, pkMap[wxRsp.SignInfo.HeaderSerial]) if err != nil { xlog.Error(err) return } ``` - 异步通知解析、验签、回执 ```go import ( "github.com/go-pay/gopay/wechat/v3" "github.com/go-pay/xlog" ) notifyReq, err := wechat.V3ParseNotify() if err != nil { xlog.Error(err) return } // 获取微信平台证书 certMap := client.WxPublicKeyMap() // 验证异步通知的签名 err = notifyReq.VerifySignByPKMap(certMap) if err != nil { xlog.Error(err) return } // ====↓↓↓====异步通知应答====↓↓↓==== // 退款通知http应答码为200且返回状态码为SUCCESS才会当做商户接收成功,否则会重试。 // 注意:重试过多会导致微信支付端积压过多通知而堵塞,影响其他正常通知。 // 此写法是 gin 框架返回微信的写法 c.JSON(http.StatusOK, &wechat.V3NotifyRsp{Code: gopay.SUCCESS, Message: "成功"}) // 此写法是 echo 框架返回微信的写法 return c.JSON(http.StatusOK, &wechat.V3NotifyRsp{Code: gopay.SUCCESS, Message: "成功"}) ``` - 敏感信息加/解密 ```go // ====↓↓↓====入参、出参加解密====↓↓↓==== // 敏感信息加密 client.V3EncryptText() // 敏感信息解密 client.V3DecryptText() // ====↓↓↓====异步通知参数解密====↓↓↓==== // 通用通知解密(推荐此方法) result, err := notifyReq.DecryptCipherTextToStruct(apiV3Key, objPtr) // 普通支付通知解密 result, err := notifyReq.DecryptPayCipherText(apiV3Key) // 合单支付通知解密 result, err := notifyReq.DecryptCombineCipherText(apiV3Key) // 退款通知解密 result, err := notifyReq.DecryptRefundCipherText(apiV3Key) ... ``` ### 5、微信v3 公共API(仅部分说明) ```go import ( "github.com/go-pay/gopay/wechat/v3" ) // 获取微信平台证书和序列号信息,推荐使用后者 wechat.GetPlatformCerts() 或 client.GetAndSelectNewestCert() // 请求参数 敏感信息加密,推荐使用后者 wechat.V3EncryptText() 或 client.V3EncryptText() // 返回参数 敏感信息解密,推荐使用后者 wechat.V3DecryptText() 或 client.V3DecryptText() // 回调通知 resource.ciphertext 敏感信息解密 wechat.V3DecryptNotifyCipherTextToStruct() // 推荐使用此方法 wechat.V3DecryptPayNotifyCipherText() wechat.V3DecryptRefundNotifyCipherText() wechat.V3DecryptCombineNotifyCipherText() ... ``` --- ## 附录: ### 微信支付v3 API * 基础支付 * APP下单:`client.V3TransactionApp()` * JSAPI/小程序下单:`client.V3TransactionJsapi()` * Native下单:`client.V3TransactionNative()` * H5下单:`client.V3TransactionH5()` * QQ小程序H5下单:`client.V3QQTransactionH5()` * 商户订单号/微信支付订单号 查询订单:`client.V3TransactionQueryOrder()` * 关闭订单:`client.V3TransactionCloseOrder()` * 基础支付(服务商) * APP下单:`client.V3PartnerTransactionApp()` * JSAPI/小程序下单:`client.V3PartnerTransactionJsapi()` * Native下单:`client.V3PartnerTransactionNative()` * H5下单:`client.V3PartnerTransactionH5()` * 查询订单:`client.V3PartnerQueryOrder()` * 关闭订单:`client.V3PartnerCloseOrder()` * 合单支付 * 合单下单-APP:`client.V3CombineTransactionApp()` * 合单下单-JSAPI/小程序:`client.V3CombineTransactionJsapi()` * 合单下单-NATIVE:`client.V3CombineTransactionNative()` * 合单下单-H5:`client.V3CombineTransactionH5()` * 合单QQ小程序下单-H5:`client.V3CombineQQTransactionH5()` * 合单查询订单:`client.V3CombineQueryOrder()` * 合单关闭订单:`client.V3CombineCloseOrder()` * 退款 * 申请退款:`client.V3Refund()` * 查询单笔退款(通过商户退款单号):`client.V3RefundQuery()` * 资金/交易账单 * 申请交易账单:`client.V3BillTradeBill()` * 申请资金账单:`client.V3BillFundFlowBill()` * 申请特约商户资金账单:`client.V3BillEcommerceFundFlowBill()` * 下载账单:`client.V3BillDownLoadBill()` * 提现(服务商、电商) * 特约商户余额提现/二级商户预约提现:`client.V3Withdraw()` * 查询特约商户提现状态/二级商户查询预约提现状态:`client.V3WithdrawStatus()` * 电商平台预约提现:`client.V3EcommerceWithdraw()` * 电商平台查询预约提现状态:`client.V3EcommerceWithdrawStatus()` * 按日下载提现异常文件:`client.V3WithdrawDownloadErrBill()` * 微信支付分(服务订单) * 创建支付分订单:`client.V3ScoreOrderCreate()` * 查询支付分订单:`client.V3ScoreOrderQuery()` * 取消支付分订单:`client.V3ScoreOrderCancel()` * 修改订单金额:`client.V3ScoreOrderModify()` * 完结支付分订单:`client.V3ScoreOrderComplete()` * 商户发起催收扣款:`client.V3ScoreOrderPay()` * 同步服务订单信息:`client.V3ScoreOrderSync()` * 微信支付分(免确认模式) * 创单结单合并:`client.V3ScoreDirectComplete()` * 微信支付分(免确认预授权模式) * 商户预授权:`client.V3ScorePermission()` * 查询用户授权记录(授权协议号):`client.V3ScorePermissionQuery()` * 解除用户授权关系(授权协议号):`client.V3ScorePermissionTerminate()` * 查询用户授权记录(openid):`client.V3ScorePermissionOpenidQuery()` * 解除用户授权关系(openid):`client.V3ScorePermissionOpenidTerminate()` * 微信先享卡 * 预受理领卡请求:`client.V3DiscountCardApply()` * 增加用户记录:`client.V3DiscountCardAddUser()` * 查询先享卡订单:`client.V3DiscountCardQuery()` * 支付即服务 * 服务人员注册:`client.V3SmartGuideReg()` * 服务人员分配:`client.V3SmartGuideAssign()` * 服务人员查询:`client.V3SmartGuideQuery()` * 服务人员信息更新:`client.V3SmartGuideUpdate()` * 智慧商圈 * 商圈积分同步:`client.V3BusinessPointsSync()` * 商圈积分授权查询:`client.V3BusinessAuthPointsQuery()` * 商圈会员待积分状态查询:`client.V3BusinessPointsStatusQuery()` * 商圈会员停车状态同步:`client.V3BusinessParkingSync()` * 微信支付分停车服务 * 查询车牌服务开通信息:`client.V3VehicleParkingQuery()` * 创建停车入场:`client.V3VehicleParkingIn()` * 扣费受理:`client.V3VehicleParkingFee()` * 查询订单:`client.V3VehicleParkingOrder()` * 代金券 * 创建代金券批次:`client.V3FavorBatchCreate()` * 激活代金券批次:`client.V3FavorBatchStart()` * 发放代金券批次:`client.V3FavorBatchGrant()` * 暂停代金券批次:`client.V3FavorBatchPause()` * 重启代金券批次:`client.V3FavorBatchRestart()` * 条件查询批次列表:`client.V3FavorBatchList()` * 查询批次详情:`client.V3FavorBatchDetail()` * 查询代金券详情:`client.V3FavorDetail()` * 查询代金券可用商户:`client.V3FavorMerchant()` * 查询代金券可用单品:`client.V3FavorItems()` * 根据商户号查用户的券:`client.V3FavorUserCoupons()` * 下载批次核销明细:`client.V3FavorUseFlowDownload()` * 下载批次退款明细:`client.V3FavorRefundFlowDownload()` * 查询消息通知地址:`client.V3FavorCallbackUrl()` * 设置消息通知地址:`client.V3FavorCallbackUrlSet()` * 商家券 * 创建商家券:`client.V3BusiFavorBatchCreate()` * 查询商家券详情:`client.V3BusiFavorBatchDetail()` * 核销用户券:`client.V3BusiFavorUse()` * 根据过滤条件查询用户券:`client.V3BusiFavorUserCoupons()` * 查询用户单张券详情:`client.V3BusiFavorUserCouponDetail()` * 上传预存code:`client.V3BusiFavorCodeUpload()` * 设置商家券事件通知地址:`client.V3BusiFavorCallbackUrlSet()` * 查询商家券事件通知地址:`client.V3BusiFavorCallbackUrl()` * 关联订单信息:`client.V3BusiFavorAssociate()` * 取消关联订单信息:`client.V3BusiFavorDisassociate()` * 修改批次预算:`client.V3BusiFavorBatchUpdate()` * 修改商家券基本信息:`client.V3BusiFavorInfoUpdate()` * 发放消费卡:`client.V3BusiFavorSend()` * 申请退券:`client.V3BusiFavorReturn()` * 使券失效:`client.V3BusiFavorDeactivate()` * 营销补差付款:`client.V3BusiFavorSubsidyPay()` * 查询营销补差付款单详情:`client.V3BusiFavorSubsidyPayDetail()` * 委托营销 * 建立合作关系:`client.V3PartnershipsBuild()` * 终止合作关系:`client.V3PartnershipsTerminate()` * 查询合作关系列表:`client.V3PartnershipsList()` * 支付有礼 * 待实现-[文档](https://pay.weixin.qq.com/docs/merchant/apis/gift-activity/activity/create-full-send-act.html) * 电子发票 * 待实现-[文档](https://pay.weixin.qq.com/docs/merchant/apis/fapiao/fapiao-card-template/create-fapiao-card-template.html) * 分账 * 请求分账:`client.V3ProfitShareOrder()` * 查询分账结果:`client.V3ProfitShareOrderQuery()` * 请求分账回退:`client.V3ProfitShareReturn()` * 查询分账回退结果:`client.V3ProfitShareReturnResult()` * 解冻剩余资金:`client.V3ProfitShareOrderUnfreeze()` * 查询剩余待分金额:`client.V3ProfitShareUnsplitAmount()` * 添加分账接收方:`client.V3ProfitShareAddReceiver()` * 删除分账接收方:`client.V3ProfitShareDeleteReceiver()` * 消费者投诉2.0 * 查询投诉单列表:`client.V3ComplaintList()` * 查询投诉单详情:`client.V3ComplaintDetail()` * 查询投诉协商历史:`client.V3ComplaintNegotiationHistory()` * 创建投诉通知回调地址:`client.V3ComplaintNotifyUrlCreate()` * 查询投诉通知回调地址:`client.V3ComplaintNotifyUrlQuery()` * 更新投诉通知回调地址:`client.V3ComplaintNotifyUrlUpdate()` * 删除投诉通知回调地址:`client.V3ComplaintNotifyUrlDelete()` * 提交回复:`client.V3ComplaintResponse()` * 反馈处理完成:`client.V3ComplaintComplete()` * 更新退款审批结果:`client.V3ComplaintUpdateRefundProgress()` * 商户上传反馈图片:`client.V3ComplaintUploadImage()` * 商户反馈图片请求:`client.V3ComplaintImage()` * 商户平台处置通知 * 创建商户违规通知回调回调地址:`client.V3ViolationNotifyUrlCreate()` * 查询商户违规通知回调回调地址:`client.V3ViolationNotifyUrlQuery()` * 更新商户违规通知回调回调地址:`client.V3ViolationNotifyUrlUpdate()` * 删除商户违规通知回调回调地址:`client.V3ViolationNotifyUrlDelete()` * 其他能力 * 图片上传:`client.V3MediaUploadImage()` * 视频上传:`client.V3MediaUploadVideo()` * 图片上传(营销专用):`client.V3FavorMediaUploadImage()` * 图片下载:`client.V3MediaDownloadImage()` * 商家转账到零钱(商户) * 发起商家转账:`client.V3Transfer()` * 通过微信批次单号查询批次单:`client.V3TransferQuery()` * 通过微信明细单号查询明细单:`client.V3TransferDetail()` * 通过商家批次单号查询批次单:`client.V3TransferMerchantQuery()` * 通过商家明细单号查询明细单:`client.V3TransferMerchantDetail()` * 转账账单电子回单申请受理接口:`client.V3TransferReceipt()` * 查询转账账单电子回单接口:`client.V3TransferReceiptQuery()` * 转账明细电子回单受理:`client.V3TransferDetailReceipt()` * 查询转账明细电子回单受理结果:`client.V3TransferDetailReceiptQuery()` * 转账(服务商) * 发起批量转账:`client.V3PartnerTransfer()` * 微信批次单号查询批次单:`client.V3PartnerTransferQuery()` * 微信明细单号查询明细单:`client.V3PartnerTransferDetail()` * 商家批次单号查询批次单:`client.V3PartnerTransferMerchantQuery()` * 商家明细单号查询明细单:`client.V3PartnerTransferMerchantDetail()` * 余额查询 * 查询特约商户账户实时余额:`client.V3EcommerceBalance()` * 查询二级商户账户日终余额:`client.V3EcommerceDayBalance()` * 查询账户实时余额:`client.V3MerchantBalance()` * 查询账户日终余额:`client.V3MerchantDayBalance()` * 来账识别 * 商户银行来账查询:`client.V3MerchantIncomeRecord()` * 特约商户银行来账查询:`client.V3EcommerceIncomeRecord()` * 特约商户进件(服务商) * 提交申请单:`client.V3Apply4SubSubmit()` * 查询申请单状态(BusinessCode):`client.V3Apply4SubQueryByBusinessCode()` * 查询申请单状态(ApplyId):`client.V3Apply4SubQueryByApplyId()` * 修改结算账号:`client.V3Apply4SubModifySettlement()` * 修改结算账号(新):`client.V3AsyncApply4SubModifySettlement()` * 查询结算账户:`client.V3Apply4SubQuerySettlement()` * 查询结算账户修改申请状态:`client.V3Apply4SubMerchantsApplication()` * 点金计划(服务商) * 点金计划管理:`client.V3GoldPlanManage()` * 商家小票管理:`client.V3GoldPlanBillManage()` * 同业过滤标签管理:`client.V3GoldPlanFilterManage()` * 开通广告展示:`client.V3GoldPlanOpenAdShow()` * 关闭广告展示:`client.V3GoldPlanCloseAdShow()` * 电商收付通(商户进件) * 二级商户进件:`client.V3EcommerceApply()` * 查询申请状态:`client.V3EcommerceApplyStatus()` * 电商收付通(分账) * 请求分账:`client.V3EcommerceProfitShare()` * 查询分账结果:`client.V3EcommerceProfitShareResult()` * 请求分账回退:`client.V3EcommerceProfitShareReturn()` * 查询分账回退结果:`client.V3EcommerceProfitShareReturnResult()` * 完结分账:`client.V3EcommerceProfitShareFinish()` * 查询订单剩余待分金额:`client.V3EcommerceProfitShareUnsplitAmount()` * 添加分账接收方:`client.V3EcommerceProfitShareAddReceiver()` * 删除分账接收方:`client.V3EcommerceProfitShareDeleteReceiver()` * 电商收付通(补差) * 请求补差:`client.V3EcommerceProfitShare()` * 请求补差回退:`client.V3EcommerceSubsidiesReturn()` * 取消补差:`client.V3EcommerceSubsidiesCancel()` * 电商收付通(退款) * 申请退款:`client.V3EcommerceRefund()` * 查询单笔退款(通过微信支付退款号):`client.V3EcommerceRefundQueryById()` * 查询单笔退款(通过商户退款单号):`client.V3EcommerceRefundQueryByNo()` * 垫付退款回补:`client.V3EcommerceRefundAdvance()` * 查询垫付回补结果:`client.V3EcommerceRefundAdvanceResult()` * 银行组件(服务商) * 获取对私银行卡号开户银行:`client.V3BankSearchBank()` * 查询支持个人业务的银行列表:`client.V3BankSearchPersonalList()` * 查询支持对公业务的银行列表:`client.V3BankSearchCorporateList()` * 查询省份列表:`client.V3BankSearchProvinceList()` * 查询城市列表:`client.V3BankSearchCityList()` * 查询支行列表:`client.V3BankSearchBranchList()` ### 微信v3公共 API * `wechat.GetPlatformCerts()` => 获取微信平台证书公钥 * `wechat.GetPlatformRSACerts()` => 获取平台RSA证书列表 * `wechat.GetPlatformSM2Certs()` => 获取国密平台证书 * `client.GetAndSelectNewestCert()` => 获取证书Map集并选择最新的有效证书序列号(默认RSA证书) * `client.GetAndSelectNewestCertRSA()` => 获取证书Map集并选择最新的有效RSA证书序列号 * `client.GetAndSelectNewestCertSM2()` => 获取证书Map集并选择最新的有效SM2证书序列号 * `client.GetAndSelectNewestCertALL()` => 获取证书Map集并选择最新的有效RSA+SM2证书序列号 * `client.WxPublicKey()` => 获取最新的有效证书 * `client.WxPublicKeyMap()` => 获取有效证书 Map * `wechat.V3ParseNotify()` => 解析微信回调请求的参数到 V3NotifyReq 结构体 * `notify.VerifySignByPKMap()` => 微信V3 异步通知验签 * `client.V3EncryptText()` => 敏感参数信息加密 * `client.V3DecryptText()` => 敏感参数信息解密 * `wechat.V3EncryptText()` => 敏感参数信息加密 * `wechat.V3DecryptText()` => 敏感参数信息解密 * `wechat.V3DecryptNotifyCipherTextToStruct()` => 解密 统一数据 到指针结构体对象(推荐统一使用此方法) * `wechat.V3DecryptNotifyCipherTextToBytes()` => 解密 统一数据 到 []byte * `wechat.V3DecryptPayNotifyCipherText()` => 解密 普通支付 回调中的加密信息 * `wechat.V3DecryptPartnerPayNotifyCipherText()` => 解密 服务商普通支付 回调中的加密信息 * `wechat.V3DecryptRefundNotifyCipherText()` => 解密 普通退款 回调中的加密信息 * `wechat.V3DecryptCombineNotifyCipherText()` => 解密 合单支付 回调中的加密信息 * `wechat.V3DecryptScoreNotifyCipherText()` => 解密 支付分确认订单 回调中的加密信息 * `wechat.V3DecryptScorePermissionNotifyCipherText()` => 解密 支付分开启/解除授权服务 回调中的加密信息 * `wechat.V3DecryptBusifavorNotifyCipherText()` => 解密 领券事件 回调中的加密信息 * `wechat.V3DecryptParkingInNotifyCipherText()` => 解密 停车入场状态变更 回调中的加密信息 * `wechat.V3DecryptParkingPayNotifyCipherText()` => 解密 停车支付结果 回调中的加密信息 * `wechat.V3DecryptCouponUseNotifyCipherText()` => 解密 代金券核销 回调中的加密信息 * `wechat.V3DecryptInvoiceTitleNotifyCipherText()` => 解密 用户发票抬头填写完成 回调中的加密信息 * `wechat.V3DecryptInvoiceNotifyCipherText()` => 解密 发票卡券作废/发票开具成功/发票冲红成功/发票插入用户卡包成功 回调中的加密信息 * `client.PaySignOfJSAPI()` => 获取 JSAPI 支付 paySign * `client.PaySignOfApp()` => 获取 APP 支付 paySign * `client.PaySignOfApplet()` => 获取 小程序 支付 paySign