From: sijun.li Date: Tue, 27 Oct 2020 03:39:09 +0000 (+0800) Subject: 签约时保存手机用户密钥 X-Git-Tag: 1.0.29^2~13 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=7415df3b2a167ca12310ce17323bc7e680570e1d;p=epayment%2Ffood_payapi.git 签约时保存手机用户密钥 --- diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/SignBxyParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/SignBxyParam.java new file mode 100644 index 00000000..43161f20 --- /dev/null +++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/SignBxyParam.java @@ -0,0 +1,39 @@ +package com.supwisdom.dlpay.api.bean; + +import com.supwisdom.dlpay.api.APIRequestParam; +import com.supwisdom.dlpay.api.annotation.Sign; +import com.supwisdom.dlpay.api.exception.RequestParamCheckException; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotEmpty; + +@Getter +@Setter +public class SignBxyParam extends APIRequestParam { + @Sign + @NotEmpty(message = "用户id不能为空") + private String userid; + @Sign + @NotEmpty(message = "手机用户id不能为空") + private String uid; + @Sign + @NotEmpty(message = "rsaprivate不能为空") + private String rsaprivate; + @Sign + @NotEmpty(message = "secertkey不能为空") + private String secertkey; + @Sign + @NotEmpty(message = "rsapublic不能为空") + private String rsapublic; + @Sign + @NotEmpty(message = "验证码不能为空") + private String code; + @Sign + @NotEmpty(message = "手机号不能为空") + private String phone; + @Override + public boolean checkParam() throws RequestParamCheckException { + return true; + } +} diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java index 575d011d..ac510c56 100644 --- a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java +++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java @@ -65,7 +65,7 @@ public interface UserProxy { Map bindCardCode(@RequestParam("userid") String userid,@RequestParam("phone") String phone); @PostMapping("/api/user/signbxy") - ApiResponse signbxy(@RequestParam("userid") String userid,@RequestParam("code") String code,@RequestParam("phone") String phone); + ApiResponse signbxy(@RequestBody SignBxyParam param); @PostMapping("/api/user/unsignbxy") ApiResponse unsignbxy(@RequestParam("userid") String userid,@RequestParam("phone") String phone); diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/UserSecretDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/UserSecretDao.java new file mode 100644 index 00000000..a31419d3 --- /dev/null +++ b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/UserSecretDao.java @@ -0,0 +1,7 @@ +package com.supwisdom.dlpay.api.dao; + +import com.supwisdom.dlpay.api.domain.TUserSecret; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface UserSecretDao extends JpaRepository { +} diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TUserSecret.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TUserSecret.java new file mode 100644 index 00000000..e5598e96 --- /dev/null +++ b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TUserSecret.java @@ -0,0 +1,66 @@ +package com.supwisdom.dlpay.api.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "tb_user_secret") +public class TUserSecret { + @Id + @Column(name = "uid", nullable = false, length = 32) + private String uid; + + @Column(name = "userid", length = 32) + private String userid; + + @Column(name = "rsaprivate", length = 1000) + private String rsaprivate; + + @Column(name = "rsapublic", length = 1000) + private String rsapublic; + + @Column(name = "secertkey", length = 64) + private String secertkey; + + public String getUid() { + return uid; + } + + public void setUid(String uid) { + this.uid = uid; + } + + public String getUserid() { + return userid; + } + + public void setUserid(String userid) { + this.userid = userid; + } + + public String getRsaprivate() { + return rsaprivate; + } + + public void setRsaprivate(String rsaprivate) { + this.rsaprivate = rsaprivate; + } + + public String getRsapublic() { + return rsapublic; + } + + public void setRsapublic(String rsapublic) { + this.rsapublic = rsapublic; + } + + public String getSecertkey() { + return secertkey; + } + + public void setSecertkey(String secertkey) { + this.secertkey = secertkey; + } +} diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt index 755d619a..da943d37 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt @@ -360,19 +360,18 @@ class UserAPIController { * 签约银行协议 */ @PostMapping("/signbxy") - fun signbxy(userid: String, code: String, phone: String): ResponseEntity { - val card = mobileApiService.findCardByUserid(userid) + fun signbxy(@RequestBody param:SignBxyParam): ResponseEntity { + val card = mobileApiService.findCardByUserid(param.userid) ?: return ResponseEntity.ok(ResponseBodyBuilder.create() .fail(400, "卡片不存在,请重新绑定")) //call sign api val person = userService.findOnePersonByUserid(card.userid) - val resp = citizencardPayService.signCard(card.cardno, person.name, person.idtype, person.idno, phone, YnrccUtil.TRANSTYPE_SIGNCARD, code) + val resp = citizencardPayService.signCard(card.cardno, person.name, person.idtype, person.idno, param.phone, YnrccUtil.TRANSTYPE_SIGNCARD, param.code) if (resp.code != "0000") { return ResponseEntity.ok(ResponseBodyBuilder.create() .fail(500, resp.message)) } - card.signed = true - mobileApiService.saveCard(card) + mobileApiService.signBxy(card,param) return ResponseEntity.ok(ResponseBodyBuilder.create() .success("ok")) } diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt index 55d717c0..bbe2e840 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt @@ -1,6 +1,7 @@ package com.supwisdom.dlpay.mobile.service import com.supwisdom.dlpay.api.bean.BaseResp +import com.supwisdom.dlpay.api.bean.SignBxyParam import com.supwisdom.dlpay.api.domain.TCard import com.supwisdom.dlpay.mobile.domain.TBMobileUser import com.supwisdom.dlpay.mobile.domain.TBPages @@ -22,6 +23,8 @@ interface MobileApiService { fun saveCard(card:TCard):TCard + fun signBxy(card:TCard,param: SignBxyParam) + fun sendSms(phone:String,code:String):BaseResp fun findByUseridAndStatus(userid:String,status:String):List? diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt index f9c2b1ec..2aebcee0 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt @@ -2,8 +2,11 @@ package com.supwisdom.dlpay.mobile.service.impl import com.mascloud.sdkclient.Client import com.supwisdom.dlpay.api.bean.BaseResp +import com.supwisdom.dlpay.api.bean.SignBxyParam import com.supwisdom.dlpay.api.dao.CardDao +import com.supwisdom.dlpay.api.dao.UserSecretDao import com.supwisdom.dlpay.api.domain.TCard +import com.supwisdom.dlpay.api.domain.TUserSecret import com.supwisdom.dlpay.framework.service.SystemUtilService import com.supwisdom.dlpay.mobile.dao.MobileUserDao import com.supwisdom.dlpay.mobile.dao.PagesDao @@ -28,6 +31,9 @@ class MobileApiServiceImpl : MobileApiService { @Autowired lateinit var pagesDao: PagesDao + @Autowired + lateinit var userSecretDao: UserSecretDao + @Autowired lateinit var systemUtilService: SystemUtilService companion object { @@ -71,6 +77,28 @@ class MobileApiServiceImpl : MobileApiService { return cardDao.save(card) } + override fun signBxy(card: TCard, param: SignBxyParam) { + card.signed = true + cardDao.save(card) + val optional = userSecretDao.findById(param.uid) + if (optional.isPresent) { + val userSecret = optional.get() + userSecret.userid = param.userid + userSecret.rsaprivate = param.rsaprivate + userSecret.rsapublic = param.rsapublic + userSecret.secertkey = param.secertkey + userSecretDao.save(userSecret) + } else { + val userSecret = TUserSecret() + userSecret.uid = param.uid + userSecret.userid = param.userid + userSecret.rsaprivate = param.rsaprivate + userSecret.rsapublic = param.rsapublic + userSecret.secertkey = param.secertkey + userSecretDao.save(userSecret) + } + } + override fun sendSms(phone: String, code: String): BaseResp { var resp = BaseResp() var url = systemUtilService.getBusinessValue("sms.url")